Beispiel #1
0
 public static void OpenMapAreaAll()
 {
     using (Dictionary <int, Mst_mapinfo> .ValueCollection.Enumerator enumerator = Mst_DataManager.Instance.Mst_mapinfo.get_Values().GetEnumerator())
     {
         while (enumerator.MoveNext())
         {
             Mst_mapinfo current = enumerator.get_Current();
             if (!Comm_UserDatas.Instance.User_mapclear.ContainsKey(current.Id))
             {
                 Mem_mapclear mem_mapclear = new Mem_mapclear(current.Id, current.Maparea_id, current.No, MapClearState.Cleard);
                 mem_mapclear.Insert();
             }
             if (current.Maparea_id != 1 && current.No == 1 && Mem_history.IsFirstOpenArea(current.Id))
             {
                 Mem_history mem_history = new Mem_history();
                 mem_history.SetAreaOpen(Comm_UserDatas.Instance.User_turn.Total_turn, current.Id);
                 Comm_UserDatas.Instance.Add_History(mem_history);
             }
         }
     }
     if (Utils.IsGameClear() && Comm_UserDatas.Instance.User_kdock.get_Count() > 0)
     {
         Comm_UserDatas.Instance.User_record.AddClearDifficult(Comm_UserDatas.Instance.User_basic.Difficult);
     }
     new Api_get_Member().StrategyInfo();
 }
Beispiel #2
0
        private bool updateAreaCompHisory(int maxMapNum)
        {
            int firstMap             = Mst_mapinfo.ConvertMapInfoId(mst_mapinfo.Maparea_id, 1);
            List <Mem_history> value = null;

            if (!Comm_UserDatas.Instance.User_history.TryGetValue(999, out value))
            {
                value = new List <Mem_history>();
            }
            if (value.Any((Mem_history x) => x.MapinfoId == firstMap))
            {
                return(false);
            }
            int num = Comm_UserDatas.Instance.User_mapclear.Values.Count((Mem_mapclear x) => (x.Maparea_id == mst_mapinfo.Maparea_id && x.Cleared && x.State == MapClearState.Cleard) ? true : false);

            if (num != maxMapNum)
            {
                return(false);
            }
            Mem_history mem_history = new Mem_history();

            mem_history.SetAreaComplete(firstMap);
            Comm_UserDatas.Instance.Add_History(mem_history);
            return(true);
        }
Beispiel #3
0
        private TurnWorkResult ExecTurnEndWork()
        {
            TurnWorkResult turnWorkResult = new TurnWorkResult();

            turnWorkResult.ChangeState = TurnState.TURN_START;
            turnInstance.AddTurn(this);
            if (turnInstance.GetDateTime().Day == 1)
            {
                new Api_req_Quest(this).EnforceQuestReset();
            }
            if (Utils.IsTurnOver())
            {
                Mem_history mem_history = new Mem_history();
                mem_history.SetGameOverToTurn(turnInstance.Total_turn);
                Comm_UserDatas.Instance.Add_History(mem_history);
            }
            foreach (Mem_ship value in Comm_UserDatas.Instance.User_ship.Values)
            {
                value.BlingWaitToStart();
                value.PurgeLovTouchData();
            }
            Comm_UserDatas.Instance.UpdateEscortShipLocale();
            Comm_UserDatas.Instance.UpdateDeckShipLocale();
            List <Mem_deck> list = Comm_UserDatas.Instance.User_deck.Values.ToList();

            list.ForEach(delegate(Mem_deck x)
            {
                x.ActionStart();
            });
            List <Mst_radingtype> types        = Mst_DataManager.Instance.Mst_RadingType[(int)basicInstance.Difficult];
            Mst_radingtype        radingRecord = Mst_radingtype.GetRadingRecord(types, turnInstance.Total_turn);

            new HashSet <int>();
            if (radingRecord != null)
            {
                double randDouble = Utils.GetRandDouble(1.0, 100.0, 1.0, 1);
                if ((double)radingRecord.Rading_rate >= randDouble)
                {
                    IEnumerable <IGrouping <int, Mem_tanker> > areaEnableTanker = Mem_tanker.GetAreaEnableTanker(Comm_UserDatas.Instance.User_tanker);
                    Dictionary <int, RadingKind> radingArea = getRadingArea(areaEnableTanker, radingRecord.Rading_type);
                    if (radingArea.Count > 0)
                    {
                        Dictionary <int, List <Mem_tanker> > tankers = areaEnableTanker.ToDictionary((IGrouping <int, Mem_tanker> x) => x.Key, (IGrouping <int, Mem_tanker> y) => y.ToList());
                        turnWorkResult.RadingResult = getRadingResult(radingRecord.Rading_type, radingArea, tankers);
                    }
                }
            }
            updateRadingEscortShipExp(turnWorkResult.RadingResult);
            if (basicInstance.Difficult == DifficultKind.KOU || basicInstance.Difficult == DifficultKind.SHI)
            {
                addRebellionPoint();
                selectRegistanceArea();
            }
            else
            {
                selectRegistanceArea();
                addRebellionPoint();
            }
            return(turnWorkResult);
        }
Beispiel #4
0
 public User_HistoryFmt(Mem_history memObj)
 {
     setHistoryType(memObj);
     DateString = Comm_UserDatas.Instance.User_turn.GetTurnString(memObj.Turn);
     if (Mst_DataManager.Instance.Mst_mapinfo.TryGetValue(memObj.MapinfoId, out MapInfo))
     {
         AreaName = Mst_DataManager.Instance.Mst_maparea[MapInfo.Maparea_id].Name;
     }
     Mst_DataManager.Instance.Mst_ship.TryGetValue(memObj.FlagShipId, out FlagShip);
 }
 public User_HistoryFmt(Mem_history memObj)
 {
     this.setHistoryType(memObj);
     this.DateString = Comm_UserDatas.Instance.User_turn.GetTurnString(memObj.Turn);
     if (Mst_DataManager.Instance.Mst_mapinfo.TryGetValue(memObj.MapinfoId, ref this.MapInfo))
     {
         this.AreaName = Mst_DataManager.Instance.Mst_maparea.get_Item(this.MapInfo.Maparea_id).Name;
     }
     Mst_DataManager.Instance.Mst_ship.TryGetValue(memObj.FlagShipId, ref this.FlagShip);
 }
Beispiel #6
0
        public void Add_History(Mem_history history)
        {
            List <Mem_history> value = null;

            if (!User_history.TryGetValue(history.Type, out value))
            {
                value = new List <Mem_history>();
                value.Add(history);
                User_history.Add(history.Type, value);
            }
            else
            {
                value.Add(history);
            }
        }
        public void Add_History(Mem_history history)
        {
            List <Mem_history> list = null;

            if (!this.User_history.TryGetValue(history.Type, ref list))
            {
                list = new List <Mem_history>();
                list.Add(history);
                this.User_history.Add(history.Type, list);
            }
            else
            {
                list.Add(history);
            }
        }
Beispiel #8
0
        public static void OpenMapArea(int maparea_id, int mapinfo_no)
        {
            if (Comm_UserDatas.Instance.User_basic.Starttime == 0)
            {
                return;
            }
            if (!Mst_DataManager.Instance.Mst_maparea.ContainsKey(maparea_id))
            {
                return;
            }
            int num = Mst_mapinfo.ConvertMapInfoId(maparea_id, mapinfo_no);

            if (!Mst_DataManager.Instance.Mst_mapinfo.ContainsKey(num))
            {
                return;
            }
            Mem_mapclear mem_mapclear = null;

            if (Comm_UserDatas.Instance.User_mapclear.TryGetValue(num, ref mem_mapclear))
            {
                if (mem_mapclear.State == MapClearState.InvationClose)
                {
                    return;
                }
                if (mem_mapclear.State != MapClearState.Cleard)
                {
                    mem_mapclear.StateChange(MapClearState.Cleard);
                }
            }
            else
            {
                mem_mapclear = new Mem_mapclear(num, maparea_id, mapinfo_no, MapClearState.Cleard);
                mem_mapclear.Insert();
            }
            if (Utils.IsGameClear() && Comm_UserDatas.Instance.User_kdock.get_Count() > 0)
            {
                Comm_UserDatas.Instance.User_record.AddClearDifficult(Comm_UserDatas.Instance.User_basic.Difficult);
            }
            if (maparea_id != 1 && mapinfo_no == 1 && Mem_history.IsFirstOpenArea(num))
            {
                Mem_history mem_history = new Mem_history();
                mem_history.SetAreaOpen(Comm_UserDatas.Instance.User_turn.Total_turn, num);
                Comm_UserDatas.Instance.Add_History(mem_history);
            }
            List <int> list = new List <int>();

            new RebellionUtils().MapReOpen(mem_mapclear, out list);
        }
 private void setHistoryType(Mem_history mem_history)
 {
     if (mem_history.Type == 1)
     {
         if (mem_history.MapClearNum == 1)
         {
             this.Type = HistoryType.MapClear1;
         }
         else if (mem_history.MapClearNum == 2)
         {
             this.Type = HistoryType.MapClear2;
         }
         else
         {
             this.Type = HistoryType.MapClear3;
         }
         return;
     }
     if (mem_history.Type == 2)
     {
         this.Type = ((!mem_history.TankerLostAll) ? HistoryType.TankerLostHalf : HistoryType.TankerLostAll);
         return;
     }
     if (mem_history.Type == 3)
     {
         this.Type = HistoryType.NewAreaOpen;
         return;
     }
     if (mem_history.Type == 4)
     {
         int gameEndType = mem_history.GameEndType;
         if (gameEndType == 1)
         {
             this.Type = HistoryType.GameClear;
         }
         else if (gameEndType == 2)
         {
             this.Type = HistoryType.GameOverLost;
         }
         else if (gameEndType == 3)
         {
             this.Type = HistoryType.GameOverTurn;
         }
         return;
     }
 }
        public Api_Result <List <User_HistoryFmt> > HistoryList()
        {
            Api_Result <List <User_HistoryFmt> > api_Result = new Api_Result <List <User_HistoryFmt> >();
            List <User_HistoryFmt> list = new List <User_HistoryFmt>();

            api_Result.data = list;
            List <Mem_history> list2 = new List <Mem_history>();

            using (Dictionary <int, List <Mem_history> > .ValueCollection.Enumerator enumerator = Comm_UserDatas.Instance.User_history.get_Values().GetEnumerator())
            {
                while (enumerator.MoveNext())
                {
                    List <Mem_history> current = enumerator.get_Current();
                    list2.AddRange(current);
                }
            }
            if (list2.get_Count() == 0)
            {
                return(api_Result);
            }
            IOrderedEnumerable <Mem_history> orderedEnumerable = Enumerable.OrderBy <Mem_history, int>(list2, (Mem_history x) => x.Rid);

            using (IEnumerator <Mem_history> enumerator2 = orderedEnumerable.GetEnumerator())
            {
                while (enumerator2.MoveNext())
                {
                    Mem_history current2 = enumerator2.get_Current();
                    if (current2.Type != 999)
                    {
                        User_HistoryFmt user_HistoryFmt = new User_HistoryFmt(current2);
                        list.Add(user_HistoryFmt);
                    }
                }
            }
            if (Comm_UserDatas.Instance.User_kdock.get_Count() == 0)
            {
                Mem_history mem_history = new Mem_history();
                mem_history.SetGameOverToLost(Comm_UserDatas.Instance.User_turn.Total_turn);
                User_HistoryFmt user_HistoryFmt2 = new User_HistoryFmt(mem_history);
                list.Add(user_HistoryFmt2);
            }
            api_Result.data = list;
            return(api_Result);
        }
Beispiel #11
0
        private void setHistoryType(Mem_history mem_history)
        {
            if (mem_history.Type == 1)
            {
                if (mem_history.MapClearNum == 1)
                {
                    Type = HistoryType.MapClear1;
                }
                else if (mem_history.MapClearNum == 2)
                {
                    Type = HistoryType.MapClear2;
                }
                else
                {
                    Type = HistoryType.MapClear3;
                }
            }
            else if (mem_history.Type == 2)
            {
                Type = ((!mem_history.TankerLostAll) ? HistoryType.TankerLostHalf : HistoryType.TankerLostAll);
            }
            else if (mem_history.Type == 3)
            {
                Type = HistoryType.NewAreaOpen;
            }
            else if (mem_history.Type == 4)
            {
                switch (mem_history.GameEndType)
                {
                case 1:
                    Type = HistoryType.GameClear;
                    break;

                case 2:
                    Type = HistoryType.GameOverLost;
                    break;

                case 3:
                    Type = HistoryType.GameOverTurn;
                    break;
                }
            }
        }
Beispiel #12
0
        private void updateHistory(bool winFlag, List <int> openMaps, bool takeAwayBattle)
        {
            int total_turn = Comm_UserDatas.Instance.User_turn.Total_turn;

            foreach (int openMap in openMaps)
            {
                if (Mem_history.IsFirstOpenArea(openMap))
                {
                    Mem_history mem_history = new Mem_history();
                    mem_history.SetAreaOpen(total_turn, openMap);
                    Comm_UserDatas.Instance.Add_History(mem_history);
                }
            }
            Mem_history mem_history2 = null;

            if (winFlag)
            {
                int mapClearNum = Mem_history.GetMapClearNum(mst_mapinfo.Id);
                int num         = Mst_maparea.MaxMapNum(Comm_UserDatas.Instance.User_basic.Difficult, mst_mapinfo.Maparea_id);
                if (mst_mapinfo.Maparea_id == 17 && mst_mapinfo.No == num)
                {
                    mem_history2 = new Mem_history();
                    mem_history2.SetGameClear(total_turn);
                }
                else if (mapClearNum == 1)
                {
                    mem_history2 = new Mem_history();
                    mem_history2.SetMapClear(total_turn, mst_mapinfo.Id, mapClearNum, F_Data.ShipData[0].Ship_id);
                }
                else if (mapClearNum <= 3 && takeAwayBattle)
                {
                    mem_history2 = new Mem_history();
                    mem_history2.SetMapClear(total_turn, mst_mapinfo.Id, mapClearNum, F_Data.ShipData[0].Ship_id);
                }
            }
            if (mem_history2 != null)
            {
                Comm_UserDatas.Instance.Add_History(mem_history2);
            }
        }
Beispiel #13
0
 public static void OpenMapAreaAll()
 {
     foreach (Mst_mapinfo value in Mst_DataManager.Instance.Mst_mapinfo.Values)
     {
         if (!Comm_UserDatas.Instance.User_mapclear.ContainsKey(value.Id))
         {
             Mem_mapclear mem_mapclear = new Mem_mapclear(value.Id, value.Maparea_id, value.No, MapClearState.Cleard);
             mem_mapclear.Insert();
         }
         if (value.Maparea_id != 1 && value.No == 1 && Mem_history.IsFirstOpenArea(value.Id))
         {
             Mem_history mem_history = new Mem_history();
             mem_history.SetAreaOpen(Comm_UserDatas.Instance.User_turn.Total_turn, value.Id);
             Comm_UserDatas.Instance.Add_History(mem_history);
         }
     }
     if (Utils.IsGameClear() && Comm_UserDatas.Instance.User_kdock.Count > 0)
     {
         Comm_UserDatas.Instance.User_record.AddClearDifficult(Comm_UserDatas.Instance.User_basic.Difficult);
     }
     new Api_get_Member().StrategyInfo();
 }
Beispiel #14
0
        public Api_Result <List <User_HistoryFmt> > HistoryList()
        {
            Api_Result <List <User_HistoryFmt> > api_Result = new Api_Result <List <User_HistoryFmt> >();
            List <User_HistoryFmt> list  = api_Result.data = new List <User_HistoryFmt>();
            List <Mem_history>     list2 = new List <Mem_history>();

            foreach (List <Mem_history> value in Comm_UserDatas.Instance.User_history.Values)
            {
                list2.AddRange(value);
            }
            if (list2.Count == 0)
            {
                return(api_Result);
            }
            IOrderedEnumerable <Mem_history> orderedEnumerable = from x in list2
                                                                 orderby x.Rid
                                                                 select x;

            foreach (Mem_history item3 in orderedEnumerable)
            {
                if (item3.Type != 999)
                {
                    User_HistoryFmt item = new User_HistoryFmt(item3);
                    list.Add(item);
                }
            }
            if (Comm_UserDatas.Instance.User_kdock.Count == 0)
            {
                Mem_history mem_history = new Mem_history();
                mem_history.SetGameOverToLost(Comm_UserDatas.Instance.User_turn.Total_turn);
                User_HistoryFmt item2 = new User_HistoryFmt(mem_history);
                list.Add(item2);
            }
            api_Result.data = list;
            return(api_Result);
        }
Beispiel #15
0
        public bool SetUserData()
        {
            XElement elements = VitaSaveManager.Instance.Elements;

            if (elements == null)
            {
                return(false);
            }
            Mem_basic        user_basic        = Model_Base.SetUserData <Mem_basic>(elements.Elements(Mem_basic.tableName).First());
            Mem_record       user_record       = Model_Base.SetUserData <Mem_record>(elements.Elements(Mem_record.tableName).First());
            Mem_turn         user_turn         = Model_Base.SetUserData <Mem_turn>(elements.Elements(Mem_turn.tableName).First());
            Mem_deckpractice user_deckpractice = Model_Base.SetUserData <Mem_deckpractice>(elements.Elements(Mem_deckpractice.tableName).First());
            XElement         xElement          = elements.Elements(Mem_trophy.tableName).FirstOrDefault();
            Mem_trophy       user_trophy       = (xElement != null) ? Model_Base.SetUserData <Mem_trophy>(xElement) : new Mem_trophy();
            XElement         xElement2         = elements.Elements(Mem_newgame_plus.tableName).FirstOrDefault();
            Mem_newgame_plus user_plus         = (xElement2 != null) ? Model_Base.SetUserData <Mem_newgame_plus>(xElement2) : new Mem_newgame_plus();

            User_basic        = null;
            User_basic        = user_basic;
            User_record       = null;
            User_record       = user_record;
            User_turn         = null;
            User_turn         = user_turn;
            User_deckpractice = null;
            User_deckpractice = user_deckpractice;
            User_trophy       = user_trophy;
            User_plus         = user_plus;
            Dictionary <int, Mem_book>         dictionary  = new Dictionary <int, Mem_book>();
            Dictionary <int, Mem_book>         dictionary2 = new Dictionary <int, Mem_book>();
            Dictionary <int, Mem_deck>         dictionary3 = new Dictionary <int, Mem_deck>();
            Dictionary <int, Mem_esccort_deck> dictionary4 = new Dictionary <int, Mem_esccort_deck>();
            Dictionary <int, Mem_furniture>    dictionary5 = new Dictionary <int, Mem_furniture>();
            Dictionary <int, Mem_kdock>        dictionary6 = new Dictionary <int, Mem_kdock>();
            Dictionary <int, Mem_mapcomp>      dictionary7 = new Dictionary <int, Mem_mapcomp>();
            Dictionary <int, Mem_mapclear>     dictionary8 = new Dictionary <int, Mem_mapclear>();
            Dictionary <enumMaterialCategory, Mem_material> dictionary9 = new Dictionary <enumMaterialCategory, Mem_material>();
            Dictionary <int, Mem_missioncomp>     dictionary10          = new Dictionary <int, Mem_missioncomp>();
            Dictionary <int, Mem_ndock>           dictionary11          = new Dictionary <int, Mem_ndock>();
            Dictionary <int, Mem_quest>           dictionary12          = new Dictionary <int, Mem_quest>();
            Dictionary <int, Mem_questcount>      dictionary13          = new Dictionary <int, Mem_questcount>();
            Dictionary <int, Mem_ship>            dictionary14          = new Dictionary <int, Mem_ship>();
            Dictionary <int, Mem_slotitem>        dictionary15          = new Dictionary <int, Mem_slotitem>();
            Dictionary <int, Mem_tanker>          dictionary16          = new Dictionary <int, Mem_tanker>();
            Dictionary <int, Mem_useitem>         dictionary17          = new Dictionary <int, Mem_useitem>();
            Dictionary <int, Mem_rebellion_point> dictionary18          = new Dictionary <int, Mem_rebellion_point>();
            Dictionary <int, Mem_room>            dictionary19          = new Dictionary <int, Mem_room>();
            HashSet <int>      hashSet  = new HashSet <int>();
            HashSet <int>      hashSet2 = new HashSet <int>();
            List <Mem_history> list     = new List <Mem_history>();

            foreach (XElement item2 in elements.Elements("ship_books").Elements("mem_book"))
            {
                Mem_book mem_book = Model_Base.SetUserData <Mem_book>(item2);
                dictionary.Add(mem_book.Table_id, mem_book);
            }
            Ship_book.Clear();
            Ship_book = dictionary;
            foreach (XElement item3 in elements.Elements("slot_books").Elements("mem_book"))
            {
                Mem_book mem_book2 = Model_Base.SetUserData <Mem_book>(item3);
                dictionary2.Add(mem_book2.Table_id, mem_book2);
            }
            Slot_book.Clear();
            Slot_book = dictionary2;
            foreach (XElement item4 in elements.Elements(Mem_deck.tableName + "s").Elements(Mem_deck.tableName))
            {
                Mem_deck mem_deck = Model_Base.SetUserData <Mem_deck>(item4);
                dictionary3.Add(mem_deck.Rid, mem_deck);
            }
            User_deck.Clear();
            User_deck = dictionary3;
            foreach (XElement item5 in elements.Elements(Mem_esccort_deck.tableName + "s").Elements(Mem_esccort_deck.tableName))
            {
                Mem_esccort_deck mem_esccort_deck = Model_Base.SetUserData <Mem_esccort_deck>(item5);
                dictionary4.Add(mem_esccort_deck.Rid, mem_esccort_deck);
            }
            User_EscortDeck.Clear();
            User_EscortDeck = dictionary4;
            foreach (XElement item6 in elements.Elements(Mem_furniture.tableName + "s").Elements(Mem_furniture.tableName))
            {
                Mem_furniture mem_furniture = Model_Base.SetUserData <Mem_furniture>(item6);
                dictionary5.Add(mem_furniture.Rid, mem_furniture);
            }
            User_furniture.Clear();
            User_furniture = dictionary5;
            foreach (XElement item7 in elements.Elements(Mem_kdock.tableName + "s").Elements(Mem_kdock.tableName))
            {
                Mem_kdock mem_kdock = Model_Base.SetUserData <Mem_kdock>(item7);
                dictionary6.Add(mem_kdock.Rid, mem_kdock);
            }
            User_kdock.Clear();
            User_kdock = dictionary6;
            foreach (XElement item8 in elements.Elements(Mem_mapcomp.tableName + "s").Elements(Mem_mapcomp.tableName))
            {
                Mem_mapcomp mem_mapcomp = Model_Base.SetUserData <Mem_mapcomp>(item8);
                dictionary7.Add(mem_mapcomp.Rid, mem_mapcomp);
            }
            User_mapcomp.Clear();
            User_mapcomp = dictionary7;
            foreach (XElement item9 in elements.Elements(Mem_mapclear.tableName + "s").Elements(Mem_mapclear.tableName))
            {
                Mem_mapclear mem_mapclear = Model_Base.SetUserData <Mem_mapclear>(item9);
                dictionary8.Add(mem_mapclear.Rid, mem_mapclear);
            }
            User_mapclear.Clear();
            User_mapclear = dictionary8;
            foreach (XElement item10 in elements.Elements(Mem_material.tableName + "s").Elements(Mem_material.tableName))
            {
                Mem_material mem_material = Model_Base.SetUserData <Mem_material>(item10);
                dictionary9.Add(mem_material.Rid, mem_material);
            }
            User_material.Clear();
            User_material = dictionary9;
            foreach (XElement item11 in elements.Elements(Mem_missioncomp.tableName + "s").Elements(Mem_missioncomp.tableName))
            {
                Mem_missioncomp mem_missioncomp = Model_Base.SetUserData <Mem_missioncomp>(item11);
                dictionary10.Add(mem_missioncomp.Rid, mem_missioncomp);
            }
            User_missioncomp.Clear();
            User_missioncomp = dictionary10;
            foreach (XElement item12 in elements.Elements(Mem_ndock.tableName + "s").Elements(Mem_ndock.tableName))
            {
                Mem_ndock mem_ndock = Model_Base.SetUserData <Mem_ndock>(item12);
                dictionary11.Add(mem_ndock.Rid, mem_ndock);
            }
            User_ndock.Clear();
            User_ndock = dictionary11;
            foreach (XElement item13 in elements.Elements(Mem_quest.tableName + "s").Elements(Mem_quest.tableName))
            {
                Mem_quest mem_quest = Model_Base.SetUserData <Mem_quest>(item13);
                dictionary12.Add(mem_quest.Rid, mem_quest);
            }
            User_quest.Clear();
            User_quest = dictionary12;
            foreach (XElement item14 in elements.Elements(Mem_questcount.tableName + "s").Elements(Mem_questcount.tableName))
            {
                Mem_questcount mem_questcount = Model_Base.SetUserData <Mem_questcount>(item14);
                dictionary13.Add(mem_questcount.Rid, mem_questcount);
            }
            User_questcount.Clear();
            User_questcount = dictionary13;
            foreach (XElement item15 in elements.Elements(Mem_slotitem.tableName + "s").Elements(Mem_slotitem.tableName))
            {
                Mem_slotitem mem_slotitem = Model_Base.SetUserData <Mem_slotitem>(item15);
                dictionary15.Add(mem_slotitem.Rid, mem_slotitem);
            }
            User_slot.Clear();
            User_slot = dictionary15;
            foreach (XElement item16 in elements.Elements(Mem_ship.tableName + "s").Elements(Mem_ship.tableName))
            {
                Mem_ship mem_ship = Model_Base.SetUserData <Mem_ship>(item16);
                dictionary14.Add(mem_ship.Rid, mem_ship);
            }
            User_ship.Clear();
            User_ship = dictionary14;
            foreach (XElement item17 in elements.Elements(Mem_tanker.tableName + "s").Elements(Mem_tanker.tableName))
            {
                Mem_tanker mem_tanker = Model_Base.SetUserData <Mem_tanker>(item17);
                dictionary16.Add(mem_tanker.Rid, mem_tanker);
            }
            User_tanker.Clear();
            User_tanker = dictionary16;
            foreach (XElement item18 in elements.Elements(Mem_useitem.tableName + "s").Elements(Mem_useitem.tableName))
            {
                Mem_useitem mem_useitem = Model_Base.SetUserData <Mem_useitem>(item18);
                dictionary17.Add(mem_useitem.Rid, mem_useitem);
            }
            User_useItem.Clear();
            User_useItem = dictionary17;
            foreach (XElement item19 in elements.Elements(Mem_rebellion_point.tableName + "s").Elements(Mem_rebellion_point.tableName))
            {
                Mem_rebellion_point mem_rebellion_point = Model_Base.SetUserData <Mem_rebellion_point>(item19);
                dictionary18.Add(mem_rebellion_point.Rid, mem_rebellion_point);
            }
            User_rebellion_point.Clear();
            User_rebellion_point = dictionary18;
            foreach (XElement item20 in elements.Elements(Mem_room.tableName + "s").Elements(Mem_room.tableName))
            {
                Mem_room mem_room = Model_Base.SetUserData <Mem_room>(item20);
                dictionary19.Add(mem_room.Rid, mem_room);
            }
            User_room.Clear();
            User_room = dictionary19;
            foreach (XElement item21 in elements.Element("temp_escortships").Elements())
            {
                string value = item21.Value;
                hashSet.Add(int.Parse(value));
            }
            Temp_escortship.Clear();
            Temp_escortship = hashSet;
            foreach (XElement item22 in elements.Element("temp_deckships").Elements())
            {
                string value2 = item22.Value;
                hashSet2.Add(int.Parse(value2));
            }
            Temp_deckship.Clear();
            Temp_deckship = hashSet2;
            foreach (XElement item23 in elements.Elements(Mem_history.tableName + "s").Elements(Mem_history.tableName))
            {
                Mem_history item = Model_Base.SetUserData <Mem_history>(item23);
                list.Add(item);
            }
            User_history.Clear();
            list.ForEach(delegate(Mem_history x)
            {
                Add_History(x);
            });
            return(true);
        }
        private List <RadingResultData> getRadingResult(int radingPhase, Dictionary <int, RadingKind> targetArea, Dictionary <int, List <Mem_tanker> > tankers)
        {
            DifficultKind           difficult = this.basicInstance.Difficult;
            List <RadingResultData> list      = new List <RadingResultData>();

            using (Dictionary <int, RadingKind> .Enumerator enumerator = targetArea.GetEnumerator())
            {
                while (enumerator.MoveNext())
                {
                    KeyValuePair <int, RadingKind> current = enumerator.get_Current();
                    int key = current.get_Key();
                    List <Mem_tanker> list2           = tankers.get_Item(key);
                    Mst_radingrate    mst_radingrate  = Mst_DataManager.Instance.Mst_RadingRate.get_Item(key).get_Item(radingPhase);
                    int              count            = list2.get_Count();
                    List <Mem_ship>  memShip          = Comm_UserDatas.Instance.User_EscortDeck.get_Item(key).Ship.getMemShip();
                    RadingResultData radingResultData = new RadingResultData();
                    radingResultData.AreaId     = key;
                    radingResultData.AttackKind = current.get_Value();
                    radingResultData.BeforeNum  = list2.get_Count();
                    List <Mem_ship> list3 = null;
                    if (memShip.get_Count() > 0)
                    {
                        radingResultData.FlagShipMstId       = memShip.get_Item(0).Ship_id;
                        radingResultData.FlagShipDamageState = memShip.get_Item(0).Get_DamageState();
                    }
                    radingResultData.RadingDamage = this.getRadingDamage(key, current.get_Value(), mst_radingrate, memShip, out radingResultData.DeckAttackPow, out list3);
                    radingResultData.BreakNum     = this.getRadingTankerLostNum(current.get_Value(), memShip, count, mst_radingrate);
                    IEnumerable <Mem_tanker> enumerable = Enumerable.Take <Mem_tanker>(list2, radingResultData.BreakNum);
                    if (radingResultData.RadingDamage.get_Count() > 0)
                    {
                        List <int> list4 = new List <int>();
                        using (List <Mem_ship> .Enumerator enumerator2 = memShip.GetEnumerator())
                        {
                            Mem_ship checkShip;
                            while (enumerator2.MoveNext())
                            {
                                checkShip = enumerator2.get_Current();
                                if (Enumerable.Any <RadingDamageData>(radingResultData.RadingDamage, (RadingDamageData x) => x.Rid == checkShip.Rid && x.Damage) && checkShip.Get_DamageState() >= DamageState.Tyuuha)
                                {
                                    list4.Add(checkShip.Ship_id);
                                }
                            }
                        }
                        Comm_UserDatas.Instance.UpdateShipBookBrokenClothState(list4);
                    }
                    using (List <Mem_ship> .Enumerator enumerator3 = list3.GetEnumerator())
                    {
                        while (enumerator3.MoveNext())
                        {
                            Mem_ship current2 = enumerator3.get_Current();
                            Comm_UserDatas.Instance.User_EscortDeck.get_Item(key).Ship.RemoveShip(current2.Rid);
                            Comm_UserDatas.Instance.User_record.AddLostShipCount();
                        }
                    }
                    Comm_UserDatas.Instance.Remove_Ship(list3);
                    using (IEnumerator <Mem_tanker> enumerator4 = enumerable.GetEnumerator())
                    {
                        while (enumerator4.MoveNext())
                        {
                            Mem_tanker current3 = enumerator4.get_Current();
                            Comm_UserDatas.Instance.Remove_Tanker(current3.Rid);
                        }
                    }
                    if (radingResultData.BeforeNum > 0)
                    {
                        double num = (double)radingResultData.BreakNum / (double)radingResultData.BeforeNum;
                        if (num >= 0.5)
                        {
                            int         mapinfo_id  = Mst_mapinfo.ConvertMapInfoId(key, 1);
                            Mem_history mem_history = new Mem_history();
                            mem_history.SetTanker(this.turnInstance.Total_turn, mapinfo_id, num >= 1.0);
                            Comm_UserDatas.Instance.Add_History(mem_history);
                        }
                    }
                    list.Add(radingResultData);
                }
            }
            return(list);
        }
        private TurnWorkResult ExecTurnEndWork()
        {
            TurnWorkResult turnWorkResult = new TurnWorkResult();

            turnWorkResult.ChangeState = TurnState.TURN_START;
            this.turnInstance.AddTurn(this);
            if (this.turnInstance.GetDateTime().get_Day() == 1)
            {
                new Api_req_Quest(this).EnforceQuestReset();
            }
            if (Utils.IsTurnOver())
            {
                Mem_history mem_history = new Mem_history();
                mem_history.SetGameOverToTurn(this.turnInstance.Total_turn);
                Comm_UserDatas.Instance.Add_History(mem_history);
            }
            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.BlingWaitToStart();
                    current.PurgeLovTouchData();
                }
            }
            Comm_UserDatas.Instance.UpdateEscortShipLocale();
            Comm_UserDatas.Instance.UpdateDeckShipLocale();
            List <Mem_deck> list = Enumerable.ToList <Mem_deck>(Comm_UserDatas.Instance.User_deck.get_Values());

            list.ForEach(delegate(Mem_deck x)
            {
                x.ActionStart();
            });
            List <Mst_radingtype> types        = Mst_DataManager.Instance.Mst_RadingType.get_Item((int)this.basicInstance.Difficult);
            Mst_radingtype        radingRecord = Mst_radingtype.GetRadingRecord(types, this.turnInstance.Total_turn);
            HashSet <int>         hashSet      = new HashSet <int>();

            if (radingRecord != null)
            {
                double randDouble = Utils.GetRandDouble(1.0, 100.0, 1.0, 1);
                if ((double)radingRecord.Rading_rate >= randDouble)
                {
                    IEnumerable <IGrouping <int, Mem_tanker> > areaEnableTanker = Mem_tanker.GetAreaEnableTanker(Comm_UserDatas.Instance.User_tanker);
                    Dictionary <int, RadingKind> radingArea = this.getRadingArea(areaEnableTanker, radingRecord.Rading_type);
                    if (radingArea.get_Count() > 0)
                    {
                        Dictionary <int, List <Mem_tanker> > tankers = Enumerable.ToDictionary <IGrouping <int, Mem_tanker>, int, List <Mem_tanker> >(areaEnableTanker, (IGrouping <int, Mem_tanker> x) => x.get_Key(), (IGrouping <int, Mem_tanker> y) => Enumerable.ToList <Mem_tanker>(y));
                        turnWorkResult.RadingResult = this.getRadingResult(radingRecord.Rading_type, radingArea, tankers);
                    }
                }
            }
            this.updateRadingEscortShipExp(turnWorkResult.RadingResult);
            if (this.basicInstance.Difficult == DifficultKind.KOU || this.basicInstance.Difficult == DifficultKind.SHI)
            {
                this.addRebellionPoint();
                this.selectRegistanceArea();
            }
            else
            {
                this.selectRegistanceArea();
                this.addRebellionPoint();
            }
            return(turnWorkResult);
        }
        public bool SetUserData()
        {
            XElement elements = VitaSaveManager.Instance.Elements;

            if (elements == null)
            {
                return(false);
            }
            Mem_basic        user_basic        = Model_Base.SetUserData <Mem_basic>(Enumerable.First <XElement>(elements.Elements(Mem_basic.tableName)));
            Mem_record       user_record       = Model_Base.SetUserData <Mem_record>(Enumerable.First <XElement>(elements.Elements(Mem_record.tableName)));
            Mem_turn         user_turn         = Model_Base.SetUserData <Mem_turn>(Enumerable.First <XElement>(elements.Elements(Mem_turn.tableName)));
            Mem_deckpractice user_deckpractice = Model_Base.SetUserData <Mem_deckpractice>(Enumerable.First <XElement>(elements.Elements(Mem_deckpractice.tableName)));
            XElement         xElement          = Enumerable.FirstOrDefault <XElement>(elements.Elements(Mem_trophy.tableName));
            Mem_trophy       user_trophy;

            if (xElement == null)
            {
                user_trophy = new Mem_trophy();
            }
            else
            {
                user_trophy = Model_Base.SetUserData <Mem_trophy>(xElement);
            }
            XElement         xElement2 = Enumerable.FirstOrDefault <XElement>(elements.Elements(Mem_newgame_plus.tableName));
            Mem_newgame_plus user_plus;

            if (xElement2 == null)
            {
                user_plus = new Mem_newgame_plus();
            }
            else
            {
                user_plus = Model_Base.SetUserData <Mem_newgame_plus>(xElement2);
            }
            this.User_basic        = null;
            this.User_basic        = user_basic;
            this.User_record       = null;
            this.User_record       = user_record;
            this.User_turn         = null;
            this.User_turn         = user_turn;
            this.User_deckpractice = null;
            this.User_deckpractice = user_deckpractice;
            this.User_trophy       = user_trophy;
            this.User_plus         = user_plus;
            Dictionary <int, Mem_book>         dictionary  = new Dictionary <int, Mem_book>();
            Dictionary <int, Mem_book>         dictionary2 = new Dictionary <int, Mem_book>();
            Dictionary <int, Mem_deck>         dictionary3 = new Dictionary <int, Mem_deck>();
            Dictionary <int, Mem_esccort_deck> dictionary4 = new Dictionary <int, Mem_esccort_deck>();
            Dictionary <int, Mem_furniture>    dictionary5 = new Dictionary <int, Mem_furniture>();
            Dictionary <int, Mem_kdock>        dictionary6 = new Dictionary <int, Mem_kdock>();
            Dictionary <int, Mem_mapcomp>      dictionary7 = new Dictionary <int, Mem_mapcomp>();
            Dictionary <int, Mem_mapclear>     dictionary8 = new Dictionary <int, Mem_mapclear>();
            Dictionary <enumMaterialCategory, Mem_material> dictionary9 = new Dictionary <enumMaterialCategory, Mem_material>();
            Dictionary <int, Mem_missioncomp>     dictionary10          = new Dictionary <int, Mem_missioncomp>();
            Dictionary <int, Mem_ndock>           dictionary11          = new Dictionary <int, Mem_ndock>();
            Dictionary <int, Mem_quest>           dictionary12          = new Dictionary <int, Mem_quest>();
            Dictionary <int, Mem_questcount>      dictionary13          = new Dictionary <int, Mem_questcount>();
            Dictionary <int, Mem_ship>            dictionary14          = new Dictionary <int, Mem_ship>();
            Dictionary <int, Mem_slotitem>        dictionary15          = new Dictionary <int, Mem_slotitem>();
            Dictionary <int, Mem_tanker>          dictionary16          = new Dictionary <int, Mem_tanker>();
            Dictionary <int, Mem_useitem>         dictionary17          = new Dictionary <int, Mem_useitem>();
            Dictionary <int, Mem_rebellion_point> dictionary18          = new Dictionary <int, Mem_rebellion_point>();
            Dictionary <int, Mem_room>            dictionary19          = new Dictionary <int, Mem_room>();
            HashSet <int>      hashSet  = new HashSet <int>();
            HashSet <int>      hashSet2 = new HashSet <int>();
            List <Mem_history> list     = new List <Mem_history>();

            using (IEnumerator <XElement> enumerator = Extensions.Elements <XElement>(elements.Elements("ship_books"), "mem_book").GetEnumerator())
            {
                while (enumerator.MoveNext())
                {
                    XElement current  = enumerator.get_Current();
                    Mem_book mem_book = Model_Base.SetUserData <Mem_book>(current);
                    dictionary.Add(mem_book.Table_id, mem_book);
                }
            }
            this.Ship_book.Clear();
            this.Ship_book = dictionary;
            using (IEnumerator <XElement> enumerator2 = Extensions.Elements <XElement>(elements.Elements("slot_books"), "mem_book").GetEnumerator())
            {
                while (enumerator2.MoveNext())
                {
                    XElement current2  = enumerator2.get_Current();
                    Mem_book mem_book2 = Model_Base.SetUserData <Mem_book>(current2);
                    dictionary2.Add(mem_book2.Table_id, mem_book2);
                }
            }
            this.Slot_book.Clear();
            this.Slot_book = dictionary2;
            using (IEnumerator <XElement> enumerator3 = Extensions.Elements <XElement>(elements.Elements(Mem_deck.tableName + "s"), Mem_deck.tableName).GetEnumerator())
            {
                while (enumerator3.MoveNext())
                {
                    XElement current3 = enumerator3.get_Current();
                    Mem_deck mem_deck = Model_Base.SetUserData <Mem_deck>(current3);
                    dictionary3.Add(mem_deck.Rid, mem_deck);
                }
            }
            this.User_deck.Clear();
            this.User_deck = dictionary3;
            using (IEnumerator <XElement> enumerator4 = Extensions.Elements <XElement>(elements.Elements(Mem_esccort_deck.tableName + "s"), Mem_esccort_deck.tableName).GetEnumerator())
            {
                while (enumerator4.MoveNext())
                {
                    XElement         current4         = enumerator4.get_Current();
                    Mem_esccort_deck mem_esccort_deck = Model_Base.SetUserData <Mem_esccort_deck>(current4);
                    dictionary4.Add(mem_esccort_deck.Rid, mem_esccort_deck);
                }
            }
            this.User_EscortDeck.Clear();
            this.User_EscortDeck = dictionary4;
            using (IEnumerator <XElement> enumerator5 = Extensions.Elements <XElement>(elements.Elements(Mem_furniture.tableName + "s"), Mem_furniture.tableName).GetEnumerator())
            {
                while (enumerator5.MoveNext())
                {
                    XElement      current5      = enumerator5.get_Current();
                    Mem_furniture mem_furniture = Model_Base.SetUserData <Mem_furniture>(current5);
                    dictionary5.Add(mem_furniture.Rid, mem_furniture);
                }
            }
            this.User_furniture.Clear();
            this.User_furniture = dictionary5;
            using (IEnumerator <XElement> enumerator6 = Extensions.Elements <XElement>(elements.Elements(Mem_kdock.tableName + "s"), Mem_kdock.tableName).GetEnumerator())
            {
                while (enumerator6.MoveNext())
                {
                    XElement  current6  = enumerator6.get_Current();
                    Mem_kdock mem_kdock = Model_Base.SetUserData <Mem_kdock>(current6);
                    dictionary6.Add(mem_kdock.Rid, mem_kdock);
                }
            }
            this.User_kdock.Clear();
            this.User_kdock = dictionary6;
            using (IEnumerator <XElement> enumerator7 = Extensions.Elements <XElement>(elements.Elements(Mem_mapcomp.tableName + "s"), Mem_mapcomp.tableName).GetEnumerator())
            {
                while (enumerator7.MoveNext())
                {
                    XElement    current7    = enumerator7.get_Current();
                    Mem_mapcomp mem_mapcomp = Model_Base.SetUserData <Mem_mapcomp>(current7);
                    dictionary7.Add(mem_mapcomp.Rid, mem_mapcomp);
                }
            }
            this.User_mapcomp.Clear();
            this.User_mapcomp = dictionary7;
            using (IEnumerator <XElement> enumerator8 = Extensions.Elements <XElement>(elements.Elements(Mem_mapclear.tableName + "s"), Mem_mapclear.tableName).GetEnumerator())
            {
                while (enumerator8.MoveNext())
                {
                    XElement     current8     = enumerator8.get_Current();
                    Mem_mapclear mem_mapclear = Model_Base.SetUserData <Mem_mapclear>(current8);
                    dictionary8.Add(mem_mapclear.Rid, mem_mapclear);
                }
            }
            this.User_mapclear.Clear();
            this.User_mapclear = dictionary8;
            using (IEnumerator <XElement> enumerator9 = Extensions.Elements <XElement>(elements.Elements(Mem_material.tableName + "s"), Mem_material.tableName).GetEnumerator())
            {
                while (enumerator9.MoveNext())
                {
                    XElement     current9     = enumerator9.get_Current();
                    Mem_material mem_material = Model_Base.SetUserData <Mem_material>(current9);
                    dictionary9.Add(mem_material.Rid, mem_material);
                }
            }
            this.User_material.Clear();
            this.User_material = dictionary9;
            using (IEnumerator <XElement> enumerator10 = Extensions.Elements <XElement>(elements.Elements(Mem_missioncomp.tableName + "s"), Mem_missioncomp.tableName).GetEnumerator())
            {
                while (enumerator10.MoveNext())
                {
                    XElement        current10       = enumerator10.get_Current();
                    Mem_missioncomp mem_missioncomp = Model_Base.SetUserData <Mem_missioncomp>(current10);
                    dictionary10.Add(mem_missioncomp.Rid, mem_missioncomp);
                }
            }
            this.User_missioncomp.Clear();
            this.User_missioncomp = dictionary10;
            using (IEnumerator <XElement> enumerator11 = Extensions.Elements <XElement>(elements.Elements(Mem_ndock.tableName + "s"), Mem_ndock.tableName).GetEnumerator())
            {
                while (enumerator11.MoveNext())
                {
                    XElement  current11 = enumerator11.get_Current();
                    Mem_ndock mem_ndock = Model_Base.SetUserData <Mem_ndock>(current11);
                    dictionary11.Add(mem_ndock.Rid, mem_ndock);
                }
            }
            this.User_ndock.Clear();
            this.User_ndock = dictionary11;
            using (IEnumerator <XElement> enumerator12 = Extensions.Elements <XElement>(elements.Elements(Mem_quest.tableName + "s"), Mem_quest.tableName).GetEnumerator())
            {
                while (enumerator12.MoveNext())
                {
                    XElement  current12 = enumerator12.get_Current();
                    Mem_quest mem_quest = Model_Base.SetUserData <Mem_quest>(current12);
                    dictionary12.Add(mem_quest.Rid, mem_quest);
                }
            }
            this.User_quest.Clear();
            this.User_quest = dictionary12;
            using (IEnumerator <XElement> enumerator13 = Extensions.Elements <XElement>(elements.Elements(Mem_questcount.tableName + "s"), Mem_questcount.tableName).GetEnumerator())
            {
                while (enumerator13.MoveNext())
                {
                    XElement       current13      = enumerator13.get_Current();
                    Mem_questcount mem_questcount = Model_Base.SetUserData <Mem_questcount>(current13);
                    dictionary13.Add(mem_questcount.Rid, mem_questcount);
                }
            }
            this.User_questcount.Clear();
            this.User_questcount = dictionary13;
            using (IEnumerator <XElement> enumerator14 = Extensions.Elements <XElement>(elements.Elements(Mem_slotitem.tableName + "s"), Mem_slotitem.tableName).GetEnumerator())
            {
                while (enumerator14.MoveNext())
                {
                    XElement     current14    = enumerator14.get_Current();
                    Mem_slotitem mem_slotitem = Model_Base.SetUserData <Mem_slotitem>(current14);
                    dictionary15.Add(mem_slotitem.Rid, mem_slotitem);
                }
            }
            this.User_slot.Clear();
            this.User_slot = dictionary15;
            using (IEnumerator <XElement> enumerator15 = Extensions.Elements <XElement>(elements.Elements(Mem_ship.tableName + "s"), Mem_ship.tableName).GetEnumerator())
            {
                while (enumerator15.MoveNext())
                {
                    XElement current15 = enumerator15.get_Current();
                    Mem_ship mem_ship  = Model_Base.SetUserData <Mem_ship>(current15);
                    dictionary14.Add(mem_ship.Rid, mem_ship);
                }
            }
            this.User_ship.Clear();
            this.User_ship = dictionary14;
            using (IEnumerator <XElement> enumerator16 = Extensions.Elements <XElement>(elements.Elements(Mem_tanker.tableName + "s"), Mem_tanker.tableName).GetEnumerator())
            {
                while (enumerator16.MoveNext())
                {
                    XElement   current16  = enumerator16.get_Current();
                    Mem_tanker mem_tanker = Model_Base.SetUserData <Mem_tanker>(current16);
                    dictionary16.Add(mem_tanker.Rid, mem_tanker);
                }
            }
            this.User_tanker.Clear();
            this.User_tanker = dictionary16;
            using (IEnumerator <XElement> enumerator17 = Extensions.Elements <XElement>(elements.Elements(Mem_useitem.tableName + "s"), Mem_useitem.tableName).GetEnumerator())
            {
                while (enumerator17.MoveNext())
                {
                    XElement    current17   = enumerator17.get_Current();
                    Mem_useitem mem_useitem = Model_Base.SetUserData <Mem_useitem>(current17);
                    dictionary17.Add(mem_useitem.Rid, mem_useitem);
                }
            }
            this.User_useItem.Clear();
            this.User_useItem = dictionary17;
            using (IEnumerator <XElement> enumerator18 = Extensions.Elements <XElement>(elements.Elements(Mem_rebellion_point.tableName + "s"), Mem_rebellion_point.tableName).GetEnumerator())
            {
                while (enumerator18.MoveNext())
                {
                    XElement            current18           = enumerator18.get_Current();
                    Mem_rebellion_point mem_rebellion_point = Model_Base.SetUserData <Mem_rebellion_point>(current18);
                    dictionary18.Add(mem_rebellion_point.Rid, mem_rebellion_point);
                }
            }
            this.User_rebellion_point.Clear();
            this.User_rebellion_point = dictionary18;
            using (IEnumerator <XElement> enumerator19 = Extensions.Elements <XElement>(elements.Elements(Mem_room.tableName + "s"), Mem_room.tableName).GetEnumerator())
            {
                while (enumerator19.MoveNext())
                {
                    XElement current19 = enumerator19.get_Current();
                    Mem_room mem_room  = Model_Base.SetUserData <Mem_room>(current19);
                    dictionary19.Add(mem_room.Rid, mem_room);
                }
            }
            this.User_room.Clear();
            this.User_room = dictionary19;
            using (IEnumerator <XElement> enumerator20 = elements.Element("temp_escortships").Elements().GetEnumerator())
            {
                while (enumerator20.MoveNext())
                {
                    XElement current20 = enumerator20.get_Current();
                    string   value     = current20.get_Value();
                    hashSet.Add(int.Parse(value));
                }
            }
            this.Temp_escortship.Clear();
            this.Temp_escortship = hashSet;
            using (IEnumerator <XElement> enumerator21 = elements.Element("temp_deckships").Elements().GetEnumerator())
            {
                while (enumerator21.MoveNext())
                {
                    XElement current21 = enumerator21.get_Current();
                    string   value2    = current21.get_Value();
                    hashSet2.Add(int.Parse(value2));
                }
            }
            this.Temp_deckship.Clear();
            this.Temp_deckship = hashSet2;
            using (IEnumerator <XElement> enumerator22 = Extensions.Elements <XElement>(elements.Elements(Mem_history.tableName + "s"), Mem_history.tableName).GetEnumerator())
            {
                while (enumerator22.MoveNext())
                {
                    XElement    current22   = enumerator22.get_Current();
                    Mem_history mem_history = Model_Base.SetUserData <Mem_history>(current22);
                    list.Add(mem_history);
                }
            }
            this.User_history.Clear();
            list.ForEach(delegate(Mem_history x)
            {
                this.Add_History(x);
            });
            return(true);
        }
Beispiel #19
0
        private List <RadingResultData> getRadingResult(int radingPhase, Dictionary <int, RadingKind> targetArea, Dictionary <int, List <Mem_tanker> > tankers)
        {
            DifficultKind           difficult = basicInstance.Difficult;
            List <RadingResultData> list      = new List <RadingResultData>();

            foreach (KeyValuePair <int, RadingKind> item in targetArea)
            {
                int key = item.Key;
                List <Mem_tanker> list2           = tankers[key];
                Mst_radingrate    mst_radingrate  = Mst_DataManager.Instance.Mst_RadingRate[key][radingPhase];
                int              count            = list2.Count;
                List <Mem_ship>  memShip          = Comm_UserDatas.Instance.User_EscortDeck[key].Ship.getMemShip();
                RadingResultData radingResultData = new RadingResultData();
                radingResultData.AreaId     = key;
                radingResultData.AttackKind = item.Value;
                radingResultData.BeforeNum  = list2.Count;
                List <Mem_ship> deleteShips = null;
                if (memShip.Count > 0)
                {
                    radingResultData.FlagShipMstId       = memShip[0].Ship_id;
                    radingResultData.FlagShipDamageState = memShip[0].Get_DamageState();
                }
                radingResultData.RadingDamage = getRadingDamage(key, item.Value, mst_radingrate, memShip, out radingResultData.DeckAttackPow, out deleteShips);
                radingResultData.BreakNum     = getRadingTankerLostNum(item.Value, memShip, count, mst_radingrate);
                IEnumerable <Mem_tanker> enumerable = list2.Take(radingResultData.BreakNum);
                if (radingResultData.RadingDamage.Count > 0)
                {
                    List <int> list3 = new List <int>();
                    using (List <Mem_ship> .Enumerator enumerator2 = memShip.GetEnumerator())
                    {
                        Mem_ship checkShip;
                        while (enumerator2.MoveNext())
                        {
                            checkShip = enumerator2.Current;
                            if (radingResultData.RadingDamage.Any((RadingDamageData x) => x.Rid == checkShip.Rid && x.Damage) && checkShip.Get_DamageState() >= DamageState.Tyuuha)
                            {
                                list3.Add(checkShip.Ship_id);
                            }
                        }
                    }
                    Comm_UserDatas.Instance.UpdateShipBookBrokenClothState(list3);
                }
                foreach (Mem_ship item2 in deleteShips)
                {
                    Comm_UserDatas.Instance.User_EscortDeck[key].Ship.RemoveShip(item2.Rid);
                    Comm_UserDatas.Instance.User_record.AddLostShipCount();
                }
                Comm_UserDatas.Instance.Remove_Ship(deleteShips);
                foreach (Mem_tanker item3 in enumerable)
                {
                    Comm_UserDatas.Instance.Remove_Tanker(item3.Rid);
                }
                if (radingResultData.BeforeNum > 0)
                {
                    double num = (double)radingResultData.BreakNum / (double)radingResultData.BeforeNum;
                    if (num >= 0.5)
                    {
                        int         mapinfo_id  = Mst_mapinfo.ConvertMapInfoId(key, 1);
                        Mem_history mem_history = new Mem_history();
                        mem_history.SetTanker(turnInstance.Total_turn, mapinfo_id, (num >= 1.0) ? true : false);
                        Comm_UserDatas.Instance.Add_History(mem_history);
                    }
                }
                list.Add(radingResultData);
            }
            return(list);
        }