private TurnWorkResult ExecTurnStartWork()
        {
            IEnumerable <int> enumerable  = Enumerable.Select <Mem_ndock, int>(Enumerable.Where <Mem_ndock>(Comm_UserDatas.Instance.User_ndock.get_Values(), (Mem_ndock ndock) => !ndock.IsRecoverEndTime() && ndock.State == NdockStates.RESTORE), (Mem_ndock ndock) => ndock.Ship_id);
            HashSet <int>     hashSet     = new HashSet <int>(enumerable);
            IEnumerable <int> enumerable2 = Enumerable.Select <Mem_deck, int>(Comm_UserDatas.Instance.User_deck.get_Values(), (Mem_deck x) => x.Ship[0]);
            HashSet <int>     hashSet2    = new HashSet <int>(enumerable2);

            using (Dictionary <int, Mem_ship> .ValueCollection.Enumerator enumerator = Comm_UserDatas.Instance.User_ship.get_Values().GetEnumerator())
            {
                while (enumerator.MoveNext())
                {
                    Mem_ship current = enumerator.get_Current();
                    current.AddTurnRecoveryCond(this, 10);
                    bool flag = current.SumLovToTurnStart(hashSet.Contains(current.Rid), hashSet2.Contains(current.Rid));
                }
            }
            TurnWorkResult turnWorkResult = new TurnWorkResult();

            turnWorkResult.ChangeState       = TurnState.CONTINOUS;
            turnWorkResult.TransportMaterial = new Dictionary <enumMaterialCategory, int>();
            Dictionary <enumMaterialCategory, int> dictionary = new Dictionary <enumMaterialCategory, int>();

            using (IEnumerator enumerator2 = Enum.GetValues(typeof(enumMaterialCategory)).GetEnumerator())
            {
                while (enumerator2.MoveNext())
                {
                    object current2 = enumerator2.get_Current();
                    turnWorkResult.TransportMaterial.Add((enumMaterialCategory)((int)current2), 0);
                    dictionary.Add((enumMaterialCategory)((int)current2), 0);
                }
            }
            this.TakeMaterial(ref turnWorkResult.TransportMaterial, ref dictionary);
            this.setSummaryMaterialInfo(dictionary, out turnWorkResult.BonusMaterialMonthly, out turnWorkResult.BonusMaterialWeekly);
            using (Dictionary <int, Mem_deck> .ValueCollection.Enumerator enumerator3 = Comm_UserDatas.Instance.User_deck.get_Values().GetEnumerator())
            {
                while (enumerator3.MoveNext())
                {
                    Mem_deck current3 = enumerator3.get_Current();
                    if (current3.MissionState == MissionStates.NONE)
                    {
                        this.repairShipAutoRecovery(current3.Ship);
                    }
                }
            }
            this.getInstance.Deck_Port();
            turnWorkResult.MissionEndDecks = Enumerable.ToList <Mem_deck>(Enumerable.Where <Mem_deck>(Comm_UserDatas.Instance.User_deck.get_Values(), (Mem_deck x) => x.MissionState == MissionStates.END || (x.MissionState == MissionStates.STOP && x.CompleteTime == 0)));
            this.ExecBling_Ship(out turnWorkResult.BlingEndShip);
            this.ExecBling_EscortDeck(out turnWorkResult.BlingEndEscortDeck);
            this.ExecBling_Tanker(out turnWorkResult.BlingEndTanker);
            this.setTurnRewardItem(out turnWorkResult.SpecialItem);
            this.updateRewardItem(turnWorkResult.SpecialItem);
            return(turnWorkResult);
        }