public void RefreshHeight() { if (LobbyScene.Get().GetBattleStage().IsLoaded()) { return; } if (UIWindow.IsLoaded()) { return; } LayoutRebuilder.ForceRebuildLayoutImmediate(gridParent.GetComponent <RectTransform>()); float totalHeight = 55; //Rect Top + Bottom size QuestProgressText[] qpts = gridParent.GetComponentsInChildren <QuestProgressText>(); foreach (QuestProgressText qpt in qpts) { MissionProgressText mpt = qpt.GetComponentInChildren <MissionProgressText>(); if (mpt != null) { LayoutRebuilder.ForceRebuildLayoutImmediate(mpt.GetComponent <RectTransform>()); } RectTransform rt = qpt.GetComponent <RectTransform>(); LayoutRebuilder.ForceRebuildLayoutImmediate(rt); totalHeight += rt.rect.height + 2; // + cell spacing } const float originHeightSize = 400.0f; //최초 사이즈보다 크면 늘린다 if (totalHeight > originHeightSize) { totalHeight = originHeightSize; } rectTransform.sizeDelta = new Vector2(rectTransform.sizeDelta.x, totalHeight); uiArrowCollidie.localScale = new Vector3(rectTransform.sizeDelta.x + 100f, rectTransform.sizeDelta.y, 1); uiArrowCollidie.localPosition = new Vector3(uiArrowCollidie.localScale.x / 2f, -(uiArrowCollidie.localScale.y / 2f), 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(); }