private bool validCheck(TaskStrategyCommandMenu.MENU_NAME menuName) { DeckModel currentDeck = SingletonMonoBehaviour <AppInformation> .Instance.CurrentDeck; List <IsGoCondition> list = new List <IsGoCondition>(); switch (menuName) { case TaskStrategyCommandMenu.MENU_NAME.SALLY: list = currentDeck.IsValidSortie(); break; case TaskStrategyCommandMenu.MENU_NAME.MOVE: list = currentDeck.IsValidMove(); break; case TaskStrategyCommandMenu.MENU_NAME.DEPLOY: { int num = StrategyTopTaskManager.Instance.TileManager.FocusTile.areaID; if (num == 15 || num == 16 || num == 17) { CommonPopupDialog.Instance.StartPopup("この海域には配備出来ません"); return(false); } break; } case TaskStrategyCommandMenu.MENU_NAME.ENSEI: list = currentDeck.IsValidMission(); break; case TaskStrategyCommandMenu.MENU_NAME.ENSYU: list = currentDeck.IsValidPractice(); break; } bool flag = list.get_Count() == 0; if (!flag) { CommonPopupDialog.Instance.StartPopup(Util.getCancelReason(list.get_Item(0))); } else { bool flag2 = TaskStrategyCommandMenu.MENU_NAME.ENSEI == menuName; bool flag3 = !StrategyTopTaskManager.GetLogicManager().GetMissionAreaId().Contains(SingletonMonoBehaviour <AppInformation> .Instance.CurrentAreaID); if (flag3 && flag2) { CommonPopupDialog.Instance.StartPopup("この海域の遠征任務は解放されていません"); return(false); } } return(flag); }
public List <IsGoCondition> IsGoSortie(int deck_id, int map_id) { DeckModel deck = base.UserInfo.GetDeck(deck_id); List <IsGoCondition> list = deck.IsValidSortie(); if (deck.AreaId != this.MapArea.Id) { list.Add(IsGoCondition.AnotherArea); } if (this._maps.Find((MapModel map) => map.MstId == map_id) == null) { list.Add(IsGoCondition.Invalid); } ShipModel[] ships = deck.GetShips(); HashSet <SType> sortieLimit = Utils.GetSortieLimit(map_id, true); if (sortieLimit != null) { for (int i = 0; i < ships.Length; i++) { SType shipType = (SType)ships[i].ShipType; if (!sortieLimit.Contains(shipType)) { list.Add(IsGoCondition.InvalidOrganization); break; } } } if (!list.Contains(IsGoCondition.InvalidOrganization)) { HashSet <SType> sortieLimit2 = Utils.GetSortieLimit(map_id, false); if (sortieLimit2 != null) { for (int j = 0; j < ships.Length; j++) { SType shipType2 = (SType)ships[j].ShipType; if (sortieLimit2.Contains(shipType2)) { list.Add(IsGoCondition.InvalidOrganization); break; } } } } return(list); }