Пример #1
0
    public void OnClickResearchButton()
    {
        if (bAdvisorDoIt && shortageTypes.Count > 0)
        {
            ZoneTile tile = ZoneTerrain.Get().zoneTiles.GetMyTile(MtTileTypes.BuildingMageTower);

            if (tile != null)
            {
                UIAdvisorTalkPop.Create(tile.transform, MWText.instance.GetText(MWText.EText.E_2175), true);

                int tutorialStep = PlayerPrefs.GetInt("TutorialStep32", 0);

                if (tutorialStep == 0 && !UITutorial.IsLoaded())
                {
                    UITutorial.Create(32);
                }
            }

            Close();
            return;
        }

        if (shortageTypes.Count > 0)
        {
            UIShortageResources.Create(shortageTypes.ToArray(), shortageValue.ToArray(), delegate { RefreshCost(goldCost, stoneCost, woodCost); }, false);
        }
        else
        {
            LobbyScene.Get().RequestLearnNationAttribute(curSelectedAttributeInfo.AttributeType, false, OnResponseLearnNationAttribute);
        }
    }
Пример #2
0
    public void LoadBundle()
    {
#if UNITY_EDITOR
        SOUND.I.LoadLocalDirectoryAudioClipsPackage("Lobby/", "Sounds", (x) => {
            if (!SOUND.I.IsPlay(DEF.SND.lobby_bgm))
            {
                SOUND.I.Play(DEF.SND.lobby_bgm, true);
            }
        });
#else
        SOUND.I.LoadAssetBundleAudioClipsPackage(DEF.GetLobbyBundleName());
        if (!SOUND.I.IsPlay(DEF.SND.lobby_bgm))
        {
            SOUND.I.Play(DEF.SND.lobby_bgm, true);
        }
#endif
        // 고정적인 빌드에 포함되는 리소스
        Popup = CreateUIPrefab <PopupUI>(thisTrans, "Popup_UI");
        Popup.GetComponent <UnityEngine.UI.CanvasScaler>().matchWidthOrHeight = Main.I.GetMatchWidthOrHeight();
        Popup.Initialize();

        // 가변적으로 필요시 번들및 빌드에서 처리할 리소스들
        UIGameLoadingPage = CreateUIPrefab <GameLoadingPage>(thisTrans, "GameLoadingPage");
        UIGameLoadingPage.GetComponent <UnityEngine.UI.CanvasScaler>().matchWidthOrHeight = Main.I.GetMatchWidthOrHeight();

        Gift = CreateUIPrefab <UIPopGift>(thisTrans, "Gift");
        Gift.GetComponent <UnityEngine.UI.CanvasScaler>().matchWidthOrHeight = Main.I.GetMatchWidthOrHeight();
        Gift.gameObject.SetActive(false);

        Tournaments = CreateUIPrefab <TournamentsUI>(thisTrans, "Tournaments_UI");
        Tournaments.GetComponent <UnityEngine.UI.CanvasScaler>().matchWidthOrHeight = Main.I.GetMatchWidthOrHeight();
        Tournaments.gameObject.SetActive(false);

        BroadCast = CreateUIPrefab <BroadCastUI>(thisTrans, "BroadCast_UI");
        BroadCast.GetComponent <UnityEngine.UI.CanvasScaler>().matchWidthOrHeight = Main.I.GetMatchWidthOrHeight();
        BroadCast.gameObject.SetActive(true);

        Coins = CreateUIPrefab <CoinsUI>(thisTrans, "Coins_UI");
        Coins.GetComponent <UnityEngine.UI.CanvasScaler>().matchWidthOrHeight = Main.I.GetMatchWidthOrHeight();
        Coins.gameObject.SetActive(true);
        Coins.Initialize();

        Game = CreateUIPrefab <GameUI>(thisTrans, "Game_UI");
        Game.GetComponent <UnityEngine.UI.CanvasScaler>().matchWidthOrHeight = Main.I.GetMatchWidthOrHeight();

        GuestGuide = CreateUIPrefab <UIPopGuestGuide>(thisTrans, "GuestGuide");
        GuestGuide.GetComponent <UnityEngine.UI.CanvasScaler>().matchWidthOrHeight = Main.I.GetMatchWidthOrHeight();

        PayTable = CreateUIPrefab <PayTableUI>(thisTrans, "PayTable_UI");
        PayTable.GetComponent <UnityEngine.UI.CanvasScaler>().matchWidthOrHeight = Main.I.GetMatchWidthOrHeight();

        if (eTutorial.on == CONFIG.CurrentTutorial)
        {
            Tutorial = CreateUIPrefab <UITutorial>(thisTrans, "Tutorial_UI");
        }
    }
Пример #3
0
    public void Refresh()
    {
        if (UIWindow.IsLoaded())
        {
            UIWindow.AddCloseAction(Refresh);
            return;
        }

        if (LobbyScene.Get().GetBattleStage().IsLoaded())
        {
            LobbyScene.Get().GetBattleStage().AddUnloadAction(Refresh);
            return;
        }

        if (Prologue.IsLoaded())
        {
            UIWindow.AddCloseAction(Refresh);
        }

        DestroyChildren(gridParent);
        RefreshVisibleQuest();

        List <MtQuest> questList = new List <MtQuest>(visibleQuestDic.Values);

        questList.Sort(new QuestIDXComparer());

        bool hasMainQuest = false;

        List <QuestProgressText> progressTextList = new List <QuestProgressText>();

        if (questList.Count > 0)
        {
            foreach (MtQuest quest in questList)
            {
                QuestProgressText questProgressText = QuestProgressText.Create(gridParent, this, quest);

                progressTextList.Add(questProgressText);

                if (pointingReserved.Contains(quest.IDX) && !UITutorial.IsLoaded() && questProgressText.gameObject.activeSelf)
                {
                    if (UIQuestConversation.IsLoaded() || UIPointingFinger.IsLoaded() || UIWindow.IsLoaded() || Prologue.IsLoaded() || UIBuildResult.IsLoaded())
                    {
                        StartCoroutine(CheckRoutin(quest, questProgressText));
                    }
                    else
                    {
                        questProgressText.StartPointingOnMission();
                        pointingReserved.Remove(quest.IDX);
                    }
                }
                else
                {
                    pointingReserved.Remove(quest.IDX);
                }

                foreach (MtQuestMission mission in quest.Missions)
                {
                    if (!mission.IsAccomplished())
                    {
                        MissionProgressText.Create(questProgressText.transform, quest, mission);
                        break;
                    }
                }

                if (quest.QuestType == MtQuestTypes.MainStory)
                {
                    hasMainQuest = true;
                }
            }
        }

        if (!hasMainQuest && !UIQuestConversation.IsLoaded())
        {
            MtQuest quest = MtDataManager.GetQuestDataFromPreRequirementIDX(AccountInfo.instance.questStep);

            if (quest != null)
            {
                QuestProgressText questProgressText = QuestProgressText.Create(gridParent, this, quest, true);
                questProgressText.transform.SetAsFirstSibling();

                questList.Add(quest);
            }
        }

        zoomButton.SetActive(questList.Count > 0);

        if (questList.Count == 0)
        {
            ZoneTerrain.Get().zoneTiles.RefreshQuestMarks();
        }
        else
        {
            foreach (MtQuest quest in questList)
            {
                foreach (MtQuestMission missionInfo in quest.Missions)
                {
                    int x = 0, y = 0;

                    if (missionInfo.ActionType == MtMissionActionTypes.GotoLocationFromCastle)
                    {
                        x = missionInfo.TargetIndex1 + AccountInfo.instance.castlePositionX;
                        y = missionInfo.TargetIndex2 + AccountInfo.instance.castlePositionY;
                    }
                    else if (missionInfo.ActionType == MtMissionActionTypes.GotoLocationFromSherinStation)
                    {
                        x = MtStatic.SherinStationX;
                        y = MtStatic.SherinStationY;

                        MtTileInfo.GetPositionOnMyField(MtStatic.SherinStationX, MtStatic.SherinStationY, out x, out y, AccountInfo.instance.castlePositionX, AccountInfo.instance.castlePositionY);

                        x += missionInfo.TargetIndex1;
                        y += missionInfo.TargetIndex2;
                    }
                    else if (missionInfo.ActionType == MtMissionActionTypes.GotoLocationFromWooboldVillageStation)
                    {
                        x = MtStatic.WooboldVillageStationX;
                        y = MtStatic.WooboldVillageStationY;

                        MtTileInfo.GetPositionOnLavaField(MtStatic.WooboldVillageStationX, MtStatic.WooboldVillageStationY, out x, out y, AccountInfo.instance.castlePositionX, AccountInfo.instance.castlePositionY);

                        x += missionInfo.TargetIndex1;
                        y += missionInfo.TargetIndex2;
                    }
                    else if (missionInfo.ActionType == MtMissionActionTypes.GotoLocationFromOldCastleStation)
                    {
                        x = MtStatic.OldCastleStationX;
                        y = MtStatic.OldCastleStationY;

                        MtTileInfo.GetPositionOnMyField(MtStatic.OldCastleStationX, MtStatic.OldCastleStationY, out x, out y, AccountInfo.instance.castlePositionX, AccountInfo.instance.castlePositionY);

                        x += missionInfo.TargetIndex1;
                        y += missionInfo.TargetIndex2;
                    }
                    else if (missionInfo.ActionType == MtMissionActionTypes.GotoLocationFromLahindelStation)
                    {
                        x = MtStatic.LahindelStationX;
                        y = MtStatic.LahindelStationY;

                        MtTileInfo.GetPositionOnMyField(MtStatic.LahindelStationX, MtStatic.LahindelStationY, out x, out y, AccountInfo.instance.castlePositionX, AccountInfo.instance.castlePositionY);

                        x += missionInfo.TargetIndex1;
                        y += missionInfo.TargetIndex2;
                    }
                    else if (missionInfo.ActionType == MtMissionActionTypes.GotoLocationFromMarenStation)
                    {
                        x = MtStatic.MarenStationX;
                        y = MtStatic.MarenStationY;

                        MtTileInfo.GetPositionOnMyField(MtStatic.MarenStationX, MtStatic.MarenStationY, out x, out y, AccountInfo.instance.castlePositionX, AccountInfo.instance.castlePositionY);

                        x += missionInfo.TargetIndex1;
                        y += missionInfo.TargetIndex2;
                    }
                    else if (missionInfo.ActionType == MtMissionActionTypes.GotoLocationFromDotakCastle)
                    {
                        x = MtStatic.DotakCastleStationX;
                        y = MtStatic.DotakCastleStationY;

                        MtTileInfo.GetPositionOnLavaField(MtStatic.DotakCastleStationX, MtStatic.DotakCastleStationY, out x, out y, AccountInfo.instance.castlePositionX, AccountInfo.instance.castlePositionY);

                        x += missionInfo.TargetIndex1;
                        y += missionInfo.TargetIndex2;
                    }
                    else if (missionInfo.ActionType == MtMissionActionTypes.GotoLocationFromTitansGardenStation)
                    {
                        x = MtStatic.TitansGardenStationX;
                        y = MtStatic.TitansGardenStationY;

                        MtTileInfo.GetPositionOnLavaField(MtStatic.TitansGardenStationX, MtStatic.TitansGardenStationY, out x, out y, AccountInfo.instance.castlePositionX, AccountInfo.instance.castlePositionY);

                        x += missionInfo.TargetIndex1;
                        y += missionInfo.TargetIndex2;
                    }
                    else if (missionInfo.ActionType == MtMissionActionTypes.GotoLocationFromLastStageStation)
                    {
                        x = MtStatic.LastStageStationX;
                        y = MtStatic.LastStageStationY;

                        MtTileInfo.GetPositionOnLavaField(MtStatic.LastStageStationX, MtStatic.LastStageStationY, out x, out y, AccountInfo.instance.castlePositionX, AccountInfo.instance.castlePositionY);

                        x += missionInfo.TargetIndex1;
                        y += missionInfo.TargetIndex2;
                    }

                    if (x != 0 || y != 0)
                    {
                        ZoneTile tile = ZoneTerrain.Get().zoneTiles.GetTileByXY(x, y);
                        if (tile != null)
                        {
                            tile.Refresh3D();
                        }
                    }
                }
            }
        }

        if (questList.Count == 0)
        {
            backPanelImg.enabled = false;
        }
        else
        {
            backPanelImg.enabled = true;
        }

        RefreshHeight();
    }
Пример #4
0
    private void OnResponseNationAttributeList(MtPacket_NationAttributes_Response typed_pk)
    {
        //패킷 특성리스트 작성
        AccountInfo.instance.RefreshAttributeList(typed_pk.NationAttributes);

        MtMyNationAttribute researchInProgressAttribute = AccountInfo.instance.GetResearchInProgressAttribute();

        if (researchInProgressAttribute != null)
        {
            researchButton.interactable = false;

            this.researchInProgressAttribute = researchInProgressAttribute;

            currentResearchPanel.SetActive(true);
            currentAttributeImage.sprite = UIUtility.LoadResearchAttributeImage(researchInProgressAttribute.AttributeType);
        }

        if (bAdvisorDoIt)
        {
            ZoneTile tile = ZoneTerrain.Get().zoneTiles.GetMyTile(MtTileTypes.BuildingMageTower);

            int duration = 999999999;
            for (MtNationAttributeTypes attType = MtNationAttributeTypes.Architecture; attType <= MtNationAttributeTypes.Diplomacy; ++attType)
            {
                int level = AccountInfo.instance.GetMyNationAttributeLevel(attType);
                MtNationAttribute minAtt = MtDataManager.GetAttributeData(attType, 1);

                if (minAtt.MaxLevel > level)
                {
                    MtNationAttribute att = MtDataManager.GetAttributeData(attType, level + 1);

                    if (att != null && att.LearningDuration < duration && tile.tileInfo.TileLevel >= att.RequiredMageTowerLevel)
                    {
                        duration = att.LearningDuration;
                        curSelectedAttributeInfo = att;
                    }
                }
            }

            for (MtNationAttributeTypes attType = MtNationAttributeTypes.StrengtheningResearch; attType <= MtNationAttributeTypes.Machlessness; ++attType)
            {
                int level = AccountInfo.instance.GetMyNationAttributeLevel(attType);
                MtNationAttribute minAtt = MtDataManager.GetAttributeData(attType, 1);

                if (minAtt.MaxLevel > level)
                {
                    MtNationAttribute att = MtDataManager.GetAttributeData(attType, level + 1);

                    if (att != null && att.LearningDuration < duration && tile.tileInfo.TileLevel >= att.RequiredMageTowerLevel)
                    {
                        duration = att.LearningDuration;
                        curSelectedAttributeInfo = att;
                    }
                }
            }

            if (curSelectedAttributeInfo == null)
            {
                UIAdvisorTalkPop.Create(tile.transform, MWText.instance.GetText(MWText.EText.E_2398), true);
            }
            else
            {
                OnClickResearchButton();
            }
        }

        if (PlayerPrefs.HasKey("LastResearchTab"))
        {
            if ((MtNationAttributeUseTypes)PlayerPrefs.GetInt("LastResearchTab", 0) == MtNationAttributeUseTypes.InternalAffairs)
            {
                OnClickInternalAffairsTab();
            }
            else
            {
                OnClickCombatTab();
            }
        }
        else
        {
            OnClickInternalAffairsTab();
        }

        int tutorialStep = PlayerPrefs.GetInt("TutorialStep26", 0);

        if (tutorialStep == 0 && !bAdvisorDoIt)
        {
            UITutorial.Create(26);
        }
    }