public void hide() { clearSlots(); selectSigongData = null; gameObject.SetActive(false); saveLocalData(); }
IEnumerator updateCurrentDungeonState(P_Sigong data) { while (data != null && selectSigongData != null && selectSigongData.id == data.id) { if (checkCanEnterDungeon(data)) { yield return(Util.ws1); } else { yield break; } } }
bool checkCanEnterDungeon(P_Sigong data) { TimeSpan ts = (DateTime.Now - GameDataManager.instance.sigongTimer[data.id]); int leftTime = 0; bool canEnter = true; bool nowOpen = true; if (data.enterWaitingTime > 0) { leftTime = data.enterWaitingTime - (int)ts.TotalSeconds; if (leftTime >= 0) // 입장 시간이 남았으면... { canEnter = false; } } else if (data.enterCoolTime > 0) { leftTime = data.enterCoolTime - (int)ts.TotalSeconds; if (leftTime >= 0) // 쿨타임이 남았으면... { canEnter = false; } } if (data.closingTime > 0) // 닫힌 던전이면. { leftTime = data.closingTime - (int)ts.TotalSeconds; if (leftTime <= 0) { canEnter = false; nowOpen = false; } } btnStartRound.isEnabled = canEnter; return(nowOpen); }
public void setDungeon(P_Sigong data, int selectIndex = 0) { #if UNITY_EDITOR Debug.LogError("setDungeon : " + selectIndex); #endif _selectIndex = selectIndex; if (_selectIndex < 0) { _selectIndex = 0; } selectSigongData = data; GameManager.me.uiManager.popupInstantDungeon.list.listGrid.refreshPanel(); StartCoroutine(refreshContentView()); updatePriceForStartDungeon(data); }
void updatePriceForStartDungeon(P_Sigong data, bool checkStatus = true) { if (string.IsNullOrEmpty(data.priceType)) { goEnterNoPriceType.SetActive(true); goEnterPriceType.SetActive(false); } else { goEnterNoPriceType.SetActive(false); goEnterPriceType.SetActive(true); bool enough = false; if (data.priceType == WSDefine.ENERGY) { spRoundStartPriceType.spriteName = WSDefine.ICON_ENERGY; if (GameDataManager.instance.energy < data.price) { enough = false; } else { enough = true; } } else if (data.priceType == WSDefine.GOLD) { spRoundStartPriceType.spriteName = WSDefine.ICON_GOLD; if (GameDataManager.instance.gold < data.price) { enough = false; } else { enough = true; } } else if (data.priceType == WSDefine.RUBY) { spRoundStartPriceType.spriteName = WSDefine.ICON_RUBY; if (GameDataManager.instance.ruby < data.price) { enough = false; } else { enough = true; } } if (enough) { lbRoundStartPrice.text = "[fff1c9]" + data.price + "[-]"; } else { lbRoundStartPrice.text = "[b82b00]" + data.price + "[-]"; } } if (checkStatus == false) { return; } if (string.IsNullOrEmpty(data.enterDepId) == false && GameDataManager.instance.sigongList[data.enterDepId].clearCount <= 0) { btnStartRound.isEnabled = false; } else { checkCanEnterDungeon(data); StartCoroutine(updateCurrentDungeonState(data)); } }
public void onCompleteReceivePlaySigong() { P_Sigong p = GameManager.me.uiManager.popupInstantDungeon.selectSigongData; if (p.roundId.StartsWith("PVP")) { DebugManager.instance.pvpPlayerData = TestModeData.getTestModePlayerData(selectSigongData.roundId.Substring(4), false, "AI_PVP6"); DebugManager.instance.pvpPlayerData2 = null; UIPlay.pvpleagueGrade = 6; UIPlay.pvpImageUrl = DebugManager.instance.pvpPlayerData.id; UIPlay.playerImageUrl = PandoraManager.instance.localUser.image_url; GameManager.me.stageManager.setNowRound(GameManager.info.roundData["PVP"], GameType.Mode.Sigong); } else { GameManager.me.stageManager.setNowRound(GameManager.info.roundData[GameManager.me.uiManager.popupInstantDungeon.selectSigongData.roundId], GameType.Mode.Sigong); } GameManager.me.stageManager.sigongData = p; hide(); GameManager.me.uiManager.showLoading(); GamePlayerData gpd = null; if (string.IsNullOrEmpty(p.forcedDeck) == false) { if (p.forcedDeck == "HERO_SELECT") { gpd = selectHeroData; } else { gpd = TestModeData.getTestModePlayerData(p.forcedDeck, true, DebugManager.instance.ai, p.handicap); } } if (gpd == null) { if (string.IsNullOrEmpty(p.handicap) == false) { string heroId = GameDataManager.instance.selectHeroId; gpd = new GamePlayerData(heroId); P_Hero heroData = GameDataManager.instance.serverHeroData[GameDataManager.instance.selectHeroId]; string[] u = new string[5]; string[] s = new string[3]; if (p.handicap == WSDefine.HANDICAP_TYPE_UNIT || p.handicap == WSDefine.HANDICAP_TYPE_BOTH) { u[0] = string.Empty; u[1] = string.Empty; u[2] = string.Empty; u[3] = string.Empty; u[4] = string.Empty; } else { u = GameDataManager.instance.getSelectUnitRunes(null); } if (p.handicap == WSDefine.HANDICAP_TYPE_SKILL || p.handicap == WSDefine.HANDICAP_TYPE_BOTH) { s[0] = string.Empty; s[1] = string.Empty; s[2] = string.Empty; } else { s = GameDataManager.instance.getSelectSkillRunes(null); } DebugManager.instance.setPlayerData(gpd, true, heroData.name, heroData.selEqts[HeroParts.HEAD], heroData.selEqts[HeroParts.BODY], heroData.selEqts[HeroParts.WEAPON], heroData.selEqts[HeroParts.VEHICLE], u, s); } } GameManager.me.startGame(0.5f, gpd); }
public override void setData(object obj) { if (obj == null) { return; } _data = (P_Sigong)obj; switch (UIPopupInstantDungeon.type) { case UIPopupInstantDungeon.Type.Easy: spBackground.spriteName = BACKGROUND_EASY; break; case UIPopupInstantDungeon.Type.Normal: spBackground.spriteName = BACKGROUND_NORMAL; break; case UIPopupInstantDungeon.Type.Hard: spBackground.spriteName = BACKGROUND_HARD; break; case UIPopupInstantDungeon.Type.Event: spBackground.spriteName = BACKGROUND_EVENT; break; } if (_setUIText == false) { _setUIText = true; lbAutoEnable.text = Util.getUIText("CANT_AUTOPLAY"); } lbTitle.text = _data.title; if (_data.enterMax == 0) { lbEnterNum.text = Util.getUIText("ENTER_NUM") + " -"; lbEnterNum.alpha = 0.5f; } else { lbEnterNum.text = Util.getUIText("ENTER_NUM") + " " + _data.enterCount + "/" + _data.enterMax; lbEnterNum.alpha = 1.0f; } if (_data.clearMax == 0) { lbClearNum.text = Util.getUIText("CLEAR_NUM") + " -"; lbClearNum.alpha = 0.5f; } else { lbClearNum.text = Util.getUIText("CLEAR_NUM") + " " + _data.clearCount + "/" + _data.clearMax; lbClearNum.alpha = 1.0f; } lbAutoEnable.cachedGameObject.SetActive(_data.autoPlay == WSDefine.NO); spAutoEnable.cachedGameObject.SetActive(_data.autoPlay == WSDefine.NO); if (UIPopupInstantDungeon.checkNewDic.ContainsKey(_data.id)) { spNew.enabled = false; } else { spNew.enabled = true; UIPopupInstantDungeon.checkNewDic.Add(_data.id, true); } refreshPanel(); if (_data.roundId.StartsWith("PVP")) { lbGameMode.text = Util.getUIText("HERO_PVP"); spGameMode.spriteName = "img_epicmode_boss"; } else { switch (GameManager.info.roundData[_data.roundId].mode) { case RoundData.MODE.KILLEMALL: lbGameMode.text = Util.getUIText("KILLEMALL"); spGameMode.spriteName = "img_epicmode_kill"; break; case RoundData.MODE.SURVIVAL: lbGameMode.text = Util.getUIText("SURVIVAL"); spGameMode.spriteName = "img_epicmode_survival"; break; case RoundData.MODE.PROTECT: lbGameMode.text = Util.getUIText("PROTECT"); spGameMode.spriteName = "img_epicmode_protect"; break; case RoundData.MODE.SNIPING: lbGameMode.text = Util.getUIText("SNIPING"); spGameMode.spriteName = "img_epicmode_boss"; break; case RoundData.MODE.KILLCOUNT: lbGameMode.text = Util.getUIText("KILLCOUNT"); spGameMode.spriteName = "img_epicmode_killcount"; break; case RoundData.MODE.KILLCOUNT2: lbGameMode.text = Util.getUIText("KILLCOUNT"); spGameMode.spriteName = "img_epicmode_killcount"; break; case RoundData.MODE.ARRIVE: lbGameMode.text = Util.getUIText("ARRIVE"); spGameMode.spriteName = "img_epicmode_arrive"; break; case RoundData.MODE.DESTROY: lbGameMode.text = Util.getUIText("DESTROY"); spGameMode.spriteName = "img_epicmode_destroy"; break; case RoundData.MODE.GETITEM: lbGameMode.text = Util.getUIText("GETITEM"); spGameMode.spriteName = "img_epicmode_getitem"; break; } } ++_updateTimeIndex; lbLeftTime.text = ""; if (string.IsNullOrEmpty(_data.enterDepId) == false && GameDataManager.instance.sigongList[_data.enterDepId].clearCount <= 0) { lbLeftTime.text = "이전 단계 던전을 클리어하시면 입장하실 수 있습니다."; } else { checkUpdateTime(); StartCoroutine(updateTime(_updateTimeIndex)); } }
public void setNowRound(RoundData rd, GameType.Mode gameType = GameType.Mode.Epic, int inputAct = 1, int inputStage = 1, int inputRound = 1) { // Debug.LogError("**** StageManager setNowRound"); sigongData = null; playAct = inputAct; playStage = inputStage; playRound = inputRound; DebugManager.instance.useTagMatchMode = (gameType == GameType.Mode.Friendly || gameType == GameType.Mode.Championship); #if UNITY_EDITOR if (DebugManager.instance.useDebug) { DebugManager.instance.useTagMatchMode = (rd.mode == RoundData.MODE.PVP); } #endif isMaxRound = (inputAct == GameDataManager.instance.maxAct && inputStage == GameDataManager.instance.maxStage && inputRound == GameDataManager.instance.maxRound); isRepeatGame = (GameDataManager.instance.roundClearStatusCheck(playAct, playStage, playRound)); isSurrenderGame = false; // 라운드 게임 정보를 입력. isIntro = (rd.id == "INTRO"); nowRound = rd; mapStartPosX = rd.mapStartEndPosX[0]; mapEndPosX = rd.mapStartEndPosX[1]; mapPlayerEndPosX = mapEndPosX - 100; if (rd.mode == RoundData.MODE.HELL) { HellModeManager.instance.setStage(rd); } else { HellModeManager.instance.setStage(null); } isPVPMode = false; nowPlayingGameType = gameType; switch (rd.mode) { case RoundData.MODE.PVP: clearChecker = checkGameClearPVP; failChecker = checkGameFailPVP; isPVPMode = true; break; case RoundData.MODE.KILLEMALL: clearChecker = checkGameClearKillemAll; failChecker = checkGameFailKillemAll; break; case RoundData.MODE.SURVIVAL: clearChecker = checkGameClearSurvival; failChecker = checkGameFailSurvival; break; case RoundData.MODE.PROTECT: clearChecker = checkGameClearProtect; failChecker = checkGameFailProtect; break; case RoundData.MODE.SNIPING: clearChecker = checkGameClearSniping; failChecker = checkGameFailSniping; break; case RoundData.MODE.KILLCOUNT: clearChecker = checkGameClearKillCount; failChecker = checkGameFailKillCount; break; case RoundData.MODE.KILLCOUNT2: clearChecker = checkGameClearKillCount2; failChecker = checkGameFailKillCount; break; case RoundData.MODE.ARRIVE: clearChecker = checkGameClearArrive; failChecker = checkGameFailArrive; _prevDist = 99999; break; case RoundData.MODE.DESTROY: clearChecker = checkGameClearDestroy; failChecker = checkGameFailDestroy; break; case RoundData.MODE.GETITEM: clearChecker = checkGameClearGetItem; failChecker = checkGameFailGetItem; break; case RoundData.MODE.B_TEST: clearChecker = checkGameClearBtest; failChecker = checkGameFailKillemAll; break; case RoundData.MODE.HELL: clearChecker = checkGameClearHell; failChecker = checkGameFailHell; nowPlayingGameType = GameType.Mode.Hell; break; default: clearChecker = checkGameClear; failChecker = checkGameFail; break; } #if UNITY_EDITOR if (DebugManager.instance.useDebug) { if (UnitSkillCamMaker.instance.useUnitSkillCamMaker) { clearChecker = GameManager.me.stageManager.dontCheck; failChecker = GameManager.me.stageManager.dontCheck; return; } } #endif }