protected void addCounter(Dictionary <int, int> addValues)
 {
     using (Dictionary <int, int> .Enumerator enumerator = addValues.GetEnumerator())
     {
         while (enumerator.MoveNext())
         {
             KeyValuePair <int, int> current        = enumerator.get_Current();
             Mem_questcount          mem_questcount = null;
             if (!this.mem_count.TryGetValue(current.get_Key(), ref mem_questcount))
             {
                 mem_questcount = new Mem_questcount(current.get_Key(), current.get_Value());
                 this.mem_count.Add(mem_questcount.Rid, mem_questcount);
             }
             else
             {
                 mem_questcount.AddCount(current.get_Value());
             }
             int num = 0;
             if (this.mst_counter_limit.TryGetValue(mem_questcount.Rid, ref num) && mem_questcount.Value > num)
             {
                 mem_questcount.Reset(false);
                 mem_questcount.AddCount(num);
             }
         }
     }
 }
        public bool CheckClearCounter(int quest_id)
        {
            Dictionary <int, int> clear_num = this.mst_count.get_Item(quest_id).Clear_num;

            if (clear_num.get_Count() != this.mst_count.get_Item(quest_id).Counter_id.get_Count())
            {
                return(this.checkCalcCounter(this.mst_count.get_Item(quest_id).Counter_id, Enumerable.First <int>(clear_num.get_Values())));
            }
            using (Dictionary <int, int> .Enumerator enumerator = clear_num.GetEnumerator())
            {
                while (enumerator.MoveNext())
                {
                    KeyValuePair <int, int> current = enumerator.get_Current();
                    int            key            = current.get_Key();
                    Mem_questcount mem_questcount = null;
                    if (!this.mem_count.TryGetValue(key, ref mem_questcount))
                    {
                        bool result = false;
                        return(result);
                    }
                    if (mem_questcount.Value < current.get_Value())
                    {
                        bool result = false;
                        return(result);
                    }
                }
            }
            return(true);
        }
示例#3
0
        private QuestProgressKinds setProgress()
        {
            if (this.State == QuestState.COMPLETE)
            {
                return(QuestProgressKinds.NOT_DISP);
            }
            Mst_questcount mst_questcount = null;

            if (!Mst_DataManager.Instance.Mst_questcount.TryGetValue(this.No, ref mst_questcount))
            {
                return(QuestProgressKinds.NOT_DISP);
            }
            double num = 0.0;

            if (mst_questcount.Counter_id.get_Count() != mst_questcount.Clear_num.get_Count())
            {
                double         num2           = 0.0;
                Mem_questcount mem_questcount = null;
                using (HashSet <int> .Enumerator enumerator = mst_questcount.Counter_id.GetEnumerator())
                {
                    while (enumerator.MoveNext())
                    {
                        int current = enumerator.get_Current();
                        if (Comm_UserDatas.Instance.User_questcount.TryGetValue(current, ref mem_questcount))
                        {
                            num2 += (double)mem_questcount.Value;
                        }
                    }
                }
                double num3 = (double)Enumerable.First <int>(mst_questcount.Clear_num.get_Values());
                num = num2 / num3;
                return(this.getprogress(num));
            }
            using (HashSet <int> .Enumerator enumerator2 = mst_questcount.Counter_id.GetEnumerator())
            {
                while (enumerator2.MoveNext())
                {
                    int            current2        = enumerator2.get_Current();
                    double         num4            = 0.0;
                    Mem_questcount mem_questcount2 = null;
                    if (Comm_UserDatas.Instance.User_questcount.TryGetValue(current2, ref mem_questcount2))
                    {
                        num4 = (double)mem_questcount2.Value;
                    }
                    double num5 = (double)mst_questcount.Clear_num.get_Item(current2);
                    double num6 = num4 / num5;
                    if (num6 >= 1.0)
                    {
                        num6 = 1.0;
                    }
                    num += num6;
                }
            }
            num /= (double)mst_questcount.Counter_id.get_Count();
            return(this.getprogress(num));
        }
示例#4
0
        private bool checkCalcCounter(HashSet <int> target, int clearNum)
        {
            int num = 0;

            foreach (int item in target)
            {
                Mem_questcount value = null;
                if (mem_count.TryGetValue(item, out value))
                {
                    num += value.Value;
                }
            }
            return((num >= clearNum) ? true : false);
        }
示例#5
0
        private void QuestReset()
        {
            List <int>    reset_type         = null;
            HashSet <int> reset_counter_type = null;

            setResetType(out reset_type, out reset_counter_type);
            foreach (Mst_quest value4 in mst_quest.Values)
            {
                if (value4.Type != 1)
                {
                    Mem_quest value = null;
                    if (Comm_UserDatas.Instance.User_quest.TryGetValue(value4.Id, out value) && value.State != 0 && reset_type.Contains(value4.Type))
                    {
                        if (value4.Torigger == 0)
                        {
                            value.StateChange(this, QuestState.WAITING_START);
                        }
                        else
                        {
                            Mst_quest value2 = null;
                            if (!mst_quest.TryGetValue(value4.Torigger, out value2))
                            {
                                value.StateChange(this, QuestState.NOT_DISP);
                            }
                            else if (value2.Type != 1)
                            {
                                value.StateChange(this, QuestState.NOT_DISP);
                            }
                            else
                            {
                                value.StateChange(this, QuestState.WAITING_START);
                            }
                        }
                    }
                }
            }
            foreach (int item in reset_counter_type)
            {
                List <int> list = mst_quest_reset[item];
                foreach (int item2 in list)
                {
                    Mem_questcount value3 = null;
                    if (Comm_UserDatas.Instance.User_questcount.TryGetValue(item2, out value3))
                    {
                        value3.Reset(deleteFlag: true);
                    }
                }
            }
        }
示例#6
0
        private QuestProgressKinds setProgress()
        {
            if (State == QuestState.COMPLETE)
            {
                return(QuestProgressKinds.NOT_DISP);
            }
            Mst_questcount value = null;

            if (!Mst_DataManager.Instance.Mst_questcount.TryGetValue(No, out value))
            {
                return(QuestProgressKinds.NOT_DISP);
            }
            double num = 0.0;

            if (value.Counter_id.Count != value.Clear_num.Count)
            {
                double         num2   = 0.0;
                Mem_questcount value2 = null;
                foreach (int item in value.Counter_id)
                {
                    if (Comm_UserDatas.Instance.User_questcount.TryGetValue(item, out value2))
                    {
                        num2 += (double)value2.Value;
                    }
                }
                double num3 = value.Clear_num.Values.First();
                num = num2 / num3;
                return(getprogress(num));
            }
            foreach (int item2 in value.Counter_id)
            {
                double         num4   = 0.0;
                Mem_questcount value3 = null;
                if (Comm_UserDatas.Instance.User_questcount.TryGetValue(item2, out value3))
                {
                    num4 = value3.Value;
                }
                double num5 = value.Clear_num[item2];
                double num6 = num4 / num5;
                if (num6 >= 1.0)
                {
                    num6 = 1.0;
                }
                num += num6;
            }
            num /= (double)value.Counter_id.Count;
            return(getprogress(num));
        }
        private bool checkCalcCounter(HashSet <int> target, int clearNum)
        {
            int num = 0;

            using (HashSet <int> .Enumerator enumerator = target.GetEnumerator())
            {
                while (enumerator.MoveNext())
                {
                    int            current        = enumerator.get_Current();
                    Mem_questcount mem_questcount = null;
                    if (this.mem_count.TryGetValue(current, ref mem_questcount))
                    {
                        num += mem_questcount.Value;
                    }
                }
            }
            return(num >= clearNum);
        }
        public bool Debug_StateChange(int no)
        {
            Mem_quest mem_quest = null;

            if (!Comm_UserDatas.Instance.User_quest.TryGetValue(no, ref mem_quest))
            {
                return(false);
            }
            if (mem_quest.State != QuestState.RUNNING)
            {
                return(false);
            }
            mem_quest.StateChange(this, QuestState.COMPLETE);
            Mst_questcount mst_questcount = null;

            if (!Mst_DataManager.Instance.Mst_questcount.TryGetValue(mem_quest.Rid, ref mst_questcount))
            {
                return(true);
            }
            using (Dictionary <int, int> .Enumerator enumerator = mst_questcount.Clear_num.GetEnumerator())
            {
                while (enumerator.MoveNext())
                {
                    KeyValuePair <int, int> current        = enumerator.get_Current();
                    Mem_questcount          mem_questcount = null;
                    if (!Comm_UserDatas.Instance.User_questcount.TryGetValue(current.get_Key(), ref mem_questcount))
                    {
                        mem_questcount = new Mem_questcount(current.get_Key(), current.get_Value());
                        Comm_UserDatas.Instance.User_questcount.Add(current.get_Key(), mem_questcount);
                    }
                    else
                    {
                        int num = current.get_Value() - mem_questcount.Value;
                        if (num > 0)
                        {
                            mem_questcount.AddCount(num);
                        }
                    }
                }
            }
            return(true);
        }
示例#9
0
 protected void addCounter(Dictionary <int, int> addValues)
 {
     foreach (KeyValuePair <int, int> addValue in addValues)
     {
         Mem_questcount value = null;
         if (!mem_count.TryGetValue(addValue.Key, out value))
         {
             value = new Mem_questcount(addValue.Key, addValue.Value);
             mem_count.Add(value.Rid, value);
         }
         else
         {
             value.AddCount(addValue.Value);
         }
         int value2 = 0;
         if (mst_counter_limit.TryGetValue(value.Rid, out value2) && value.Value > value2)
         {
             value.Reset(deleteFlag: false);
             value.AddCount(value2);
         }
     }
 }
示例#10
0
        public bool Debug_StateChange(int no)
        {
            Mem_quest value = null;

            if (!Comm_UserDatas.Instance.User_quest.TryGetValue(no, out value))
            {
                return(false);
            }
            if (value.State != QuestState.RUNNING)
            {
                return(false);
            }
            value.StateChange(this, QuestState.COMPLETE);
            Mst_questcount value2 = null;

            if (!Mst_DataManager.Instance.Mst_questcount.TryGetValue(value.Rid, out value2))
            {
                return(true);
            }
            foreach (KeyValuePair <int, int> item in value2.Clear_num)
            {
                Mem_questcount value3 = null;
                if (!Comm_UserDatas.Instance.User_questcount.TryGetValue(item.Key, out value3))
                {
                    value3 = new Mem_questcount(item.Key, item.Value);
                    Comm_UserDatas.Instance.User_questcount.Add(item.Key, value3);
                }
                else
                {
                    int num = item.Value - value3.Value;
                    if (num > 0)
                    {
                        value3.AddCount(num);
                    }
                }
            }
            return(true);
        }
示例#11
0
        public bool CheckClearCounter(int quest_id)
        {
            Dictionary <int, int> clear_num = mst_count[quest_id].Clear_num;

            if (clear_num.Count != mst_count[quest_id].Counter_id.Count)
            {
                return(checkCalcCounter(mst_count[quest_id].Counter_id, clear_num.Values.First()));
            }
            foreach (KeyValuePair <int, int> item in clear_num)
            {
                int            key   = item.Key;
                Mem_questcount value = null;
                if (!mem_count.TryGetValue(key, out value))
                {
                    return(false);
                }
                if (value.Value < item.Value)
                {
                    return(false);
                }
            }
            return(true);
        }
示例#12
0
        public bool Check_25(Mem_quest targetQuest)
        {
            if (this.type != QuestKousyou.KousyouKind.DestroyItem)
            {
                return(false);
            }
            Dictionary <int, int> dictionary = base.isAddCounter(targetQuest.Rid, this.checkData);
            Mem_ship flagShip = this.getFlagShip(1);
            string   yomi     = Mst_DataManager.Instance.Mst_ship.get_Item(flagShip.Ship_id).Yomi;

            if (!yomi.Equals("ほうしょう"))
            {
                return(false);
            }
            Mem_ship      arg_6A_0 = flagShip;
            HashSet <int> hashSet  = new HashSet <int>();

            hashSet.Add(20);
            Dictionary <int, List <int> > slotIndexFromId = arg_6A_0.GetSlotIndexFromId(hashSet);

            if (slotIndexFromId.get_Item(20).get_Count() == 0)
            {
                return(false);
            }
            bool flag = false;

            using (List <int> .Enumerator enumerator = slotIndexFromId.get_Item(20).GetEnumerator())
            {
                while (enumerator.MoveNext())
                {
                    int current = enumerator.get_Current();
                    if (Comm_UserDatas.Instance.User_slot.get_Item(flagShip.Slot.get_Item(current)).IsMaxSkillLevel())
                    {
                        flag = true;
                    }
                }
            }
            if (!flag)
            {
                return(false);
            }
            int            num            = 2;
            int            num2           = 0;
            Mem_questcount mem_questcount = new Mem_questcount();

            if (Comm_UserDatas.Instance.User_questcount.TryGetValue(6806, ref mem_questcount))
            {
                num2 = mem_questcount.Value;
            }
            int            num3            = 1;
            int            num4            = 0;
            Mem_questcount mem_questcount2 = new Mem_questcount();

            if (Comm_UserDatas.Instance.User_questcount.TryGetValue(6807, ref mem_questcount2))
            {
                num4 = mem_questcount2.Value;
            }
            using (List <Mst_slotitem> .Enumerator enumerator2 = this.destroyItems.GetEnumerator())
            {
                while (enumerator2.MoveNext())
                {
                    Mst_slotitem current2 = enumerator2.get_Current();
                    if (current2.Id == 20 && num2 < num)
                    {
                        num2++;
                    }
                    if (current2.Id == 19 && num4 < num3)
                    {
                        num4++;
                    }
                }
            }
            if (dictionary.ContainsKey(6806))
            {
                dictionary.set_Item(6806, num2);
            }
            if (dictionary.ContainsKey(6807))
            {
                dictionary.set_Item(6807, num4);
            }
            base.addCounter(dictionary);
            return(base.CheckClearCounter(targetQuest.Rid));
        }
        private void QuestReset()
        {
            List <int>    list    = null;
            HashSet <int> hashSet = null;

            this.setResetType(out list, out hashSet);
            using (Dictionary <int, Mst_quest> .ValueCollection.Enumerator enumerator = this.mst_quest.get_Values().GetEnumerator())
            {
                while (enumerator.MoveNext())
                {
                    Mst_quest current = enumerator.get_Current();
                    if (current.Type != 1)
                    {
                        Mem_quest mem_quest = null;
                        if (Comm_UserDatas.Instance.User_quest.TryGetValue(current.Id, ref mem_quest))
                        {
                            if (mem_quest.State != QuestState.NOT_DISP && list.Contains(current.Type))
                            {
                                if (current.Torigger == 0)
                                {
                                    mem_quest.StateChange(this, QuestState.WAITING_START);
                                }
                                else
                                {
                                    Mst_quest mst_quest = null;
                                    if (!this.mst_quest.TryGetValue(current.Torigger, ref mst_quest))
                                    {
                                        mem_quest.StateChange(this, QuestState.NOT_DISP);
                                    }
                                    else if (mst_quest.Type != 1)
                                    {
                                        mem_quest.StateChange(this, QuestState.NOT_DISP);
                                    }
                                    else
                                    {
                                        mem_quest.StateChange(this, QuestState.WAITING_START);
                                    }
                                }
                            }
                        }
                    }
                }
            }
            using (HashSet <int> .Enumerator enumerator2 = hashSet.GetEnumerator())
            {
                while (enumerator2.MoveNext())
                {
                    int        current2 = enumerator2.get_Current();
                    List <int> list2    = this.mst_quest_reset.get_Item(current2);
                    using (List <int> .Enumerator enumerator3 = list2.GetEnumerator())
                    {
                        while (enumerator3.MoveNext())
                        {
                            int            current3       = enumerator3.get_Current();
                            Mem_questcount mem_questcount = null;
                            if (Comm_UserDatas.Instance.User_questcount.TryGetValue(current3, ref mem_questcount))
                            {
                                mem_questcount.Reset(true);
                            }
                        }
                    }
                }
            }
        }
        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);
        }
示例#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 void slotModelChangeQuestNormalize(Mem_ship flagShip, Mem_quest mem_quest, Mst_quest mst_quest, User_QuestFmt changeFmt)
        {
            HashSet <int> hashSet = new HashSet <int>();

            if (mem_quest.State == QuestState.COMPLETE)
            {
                if (mst_quest.Get_1_type == 15)
                {
                    hashSet.Add(mst_quest.Get_1_id);
                }
                if (mst_quest.Get_2_type == 15)
                {
                    hashSet.Add(mst_quest.Get_2_id);
                }
            }
            if (hashSet.get_Count() == 0)
            {
                return;
            }
            Mst_questcount mst_questcount = null;

            Mst_DataManager.Instance.Mst_questcount.TryGetValue(mem_quest.Rid, ref mst_questcount);
            HashSet <int> hashSet2 = new HashSet <int>();
            bool          flag     = false;

            using (HashSet <int> .Enumerator enumerator = hashSet.GetEnumerator())
            {
                while (enumerator.MoveNext())
                {
                    int  current = enumerator.get_Current();
                    int  mst_id  = this.mst_slotitemchange.get_Item(current).get_Item(0);
                    bool maxFlag = mst_quest.IsLevelMax(this.mst_slotitemchange.get_Item(current));
                    if (mst_quest.IsUseCrew(this.mst_slotitemchange.get_Item(current)))
                    {
                        flag = true;
                    }
                    int num = this.findModelChangeEnableSlotPos(flagShip.Slot, mst_id, maxFlag);
                    hashSet2.Add(num);
                }
            }
            if (flag)
            {
                int         num2        = 0;
                Mem_useitem mem_useitem = null;
                if (Comm_UserDatas.Instance.User_useItem.TryGetValue(70, ref mem_useitem))
                {
                    num2 = mem_useitem.Value;
                }
                if (num2 == 0)
                {
                    hashSet2.Add(-1);
                }
            }
            List <string> requireShip = QuestKousyou.GetRequireShip(mem_quest.Rid);

            if (requireShip.get_Count() > 0)
            {
                string yomi = Mst_DataManager.Instance.Mst_ship.get_Item(flagShip.Ship_id).Yomi;
                if (!Enumerable.Any <string>(requireShip, (string x) => x.Equals(yomi)))
                {
                    hashSet2.Add(-1);
                }
            }
            if (hashSet2.Contains(-1))
            {
                mem_quest.StateChange(this, QuestState.WAITING_START);
                changeFmt.State = mem_quest.State;
                if (mst_questcount == null)
                {
                    return;
                }
                using (HashSet <int> .Enumerator enumerator2 = mst_questcount.Counter_id.GetEnumerator())
                {
                    while (enumerator2.MoveNext())
                    {
                        int            current2       = enumerator2.get_Current();
                        Mem_questcount mem_questcount = null;
                        if (Comm_UserDatas.Instance.User_questcount.TryGetValue(current2, ref mem_questcount))
                        {
                            mem_questcount.Reset(false);
                        }
                    }
                }
            }
            else if (hashSet2.Contains(-2))
            {
                changeFmt.InvalidFlag = true;
            }
        }
        public List <QuestItemGetFmt> ClearItemGet(User_QuestFmt fmt)
        {
            Mem_quest mem_quest = null;

            if (!Comm_UserDatas.Instance.User_quest.TryGetValue(fmt.No, ref mem_quest))
            {
                return(null);
            }
            if (mem_quest.State != QuestState.COMPLETE)
            {
                return(null);
            }
            mem_quest.StateChange(this, QuestState.END);
            Mst_questcount mst_questcount = null;

            if (Mst_DataManager.Instance.Mst_questcount.TryGetValue(mem_quest.Rid, ref mst_questcount))
            {
                using (Dictionary <int, bool> .Enumerator enumerator = mst_questcount.Reset_flag.GetEnumerator())
                {
                    while (enumerator.MoveNext())
                    {
                        KeyValuePair <int, bool> current = enumerator.get_Current();
                        if (current.get_Value())
                        {
                            Mem_questcount mem_questcount = null;
                            if (Comm_UserDatas.Instance.User_questcount.TryGetValue(current.get_Key(), ref mem_questcount))
                            {
                                mem_questcount.Reset(true);
                            }
                        }
                    }
                }
            }
            Mst_quest mst_quest         = this.mst_quest.get_Item(fmt.No);
            List <QuestItemGetFmt> list = new List <QuestItemGetFmt>();

            using (Dictionary <enumMaterialCategory, int> .Enumerator enumerator2 = fmt.GetMaterial.GetEnumerator())
            {
                while (enumerator2.MoveNext())
                {
                    KeyValuePair <enumMaterialCategory, int> current2 = enumerator2.get_Current();
                    if (current2.get_Key() <= enumMaterialCategory.Bauxite)
                    {
                        list.Add(this._ItemGet(current2.get_Key(), current2.get_Value()));
                    }
                }
            }
            int  slotModelChangeId  = mst_quest.GetSlotModelChangeId(1);
            int  slotModelChangeId2 = mst_quest.GetSlotModelChangeId(2);
            bool useCrewFlag        = false;
            bool maxExpFlag         = false;

            if (slotModelChangeId > 0)
            {
                maxExpFlag  = mst_quest.IsLevelMax(this.mst_slotitemchange.get_Item(slotModelChangeId));
                useCrewFlag = mst_quest.IsUseCrew(this.mst_slotitemchange.get_Item(slotModelChangeId));
            }
            list.Add(this._ItemGet(mst_quest.Get_1_type, mst_quest.Get_1_id, mst_quest.Get_1_count, maxExpFlag, useCrewFlag));
            bool useCrewFlag2 = false;
            bool maxExpFlag2  = false;

            if (slotModelChangeId2 > 0)
            {
                maxExpFlag2  = mst_quest.IsLevelMax(this.mst_slotitemchange.get_Item(slotModelChangeId2));
                useCrewFlag2 = mst_quest.IsUseCrew(this.mst_slotitemchange.get_Item(slotModelChangeId2));
            }
            list.Add(this._ItemGet(mst_quest.Get_2_type, mst_quest.Get_2_id, mst_quest.Get_2_count, maxExpFlag2, useCrewFlag2));
            list = list.FindAll((QuestItemGetFmt item) => item != null);
            return(list);
        }
示例#18
0
        public bool Check_25(Mem_quest targetQuest)
        {
            if (type != KousyouKind.DestroyItem)
            {
                return(false);
            }
            Dictionary <int, int> dictionary = isAddCounter(targetQuest.Rid, checkData);
            Mem_ship flagShip = getFlagShip(1);
            string   yomi     = Mst_DataManager.Instance.Mst_ship[flagShip.Ship_id].Yomi;

            if (!yomi.Equals("ほうしょう"))
            {
                return(false);
            }
            Dictionary <int, List <int> > slotIndexFromId = flagShip.GetSlotIndexFromId(new HashSet <int>
            {
                20
            });

            if (slotIndexFromId[20].Count == 0)
            {
                return(false);
            }
            bool flag = false;

            foreach (int item in slotIndexFromId[20])
            {
                if (Comm_UserDatas.Instance.User_slot[flagShip.Slot[item]].IsMaxSkillLevel())
                {
                    flag = true;
                }
            }
            if (!flag)
            {
                return(false);
            }
            int            num   = 2;
            int            num2  = 0;
            Mem_questcount value = new Mem_questcount();

            if (Comm_UserDatas.Instance.User_questcount.TryGetValue(6806, out value))
            {
                num2 = value.Value;
            }
            int            num3   = 1;
            int            num4   = 0;
            Mem_questcount value2 = new Mem_questcount();

            if (Comm_UserDatas.Instance.User_questcount.TryGetValue(6807, out value2))
            {
                num4 = value2.Value;
            }
            foreach (Mst_slotitem destroyItem in destroyItems)
            {
                if (destroyItem.Id == 20 && num2 < num)
                {
                    num2++;
                }
                if (destroyItem.Id == 19 && num4 < num3)
                {
                    num4++;
                }
            }
            if (dictionary.ContainsKey(6806))
            {
                dictionary[6806] = num2;
            }
            if (dictionary.ContainsKey(6807))
            {
                dictionary[6807] = num4;
            }
            addCounter(dictionary);
            return(CheckClearCounter(targetQuest.Rid));
        }
示例#19
0
        private void slotModelChangeQuestNormalize(Mem_ship flagShip, Mem_quest mem_quest, Mst_quest mst_quest, User_QuestFmt changeFmt)
        {
            HashSet <int> hashSet = new HashSet <int>();

            if (mem_quest.State == QuestState.COMPLETE)
            {
                if (mst_quest.Get_1_type == 15)
                {
                    hashSet.Add(mst_quest.Get_1_id);
                }
                if (mst_quest.Get_2_type == 15)
                {
                    hashSet.Add(mst_quest.Get_2_id);
                }
            }
            if (hashSet.Count == 0)
            {
                return;
            }
            Mst_questcount value = null;

            Mst_DataManager.Instance.Mst_questcount.TryGetValue(mem_quest.Rid, out value);
            HashSet <int> hashSet2 = new HashSet <int>();
            bool          flag     = false;

            foreach (int item2 in hashSet)
            {
                int  mst_id  = mst_slotitemchange[item2][0];
                bool maxFlag = mst_quest.IsLevelMax(mst_slotitemchange[item2]);
                if (mst_quest.IsUseCrew(mst_slotitemchange[item2]))
                {
                    flag = true;
                }
                int item = findModelChangeEnableSlotPos(flagShip.Slot, mst_id, maxFlag);
                hashSet2.Add(item);
            }
            if (flag)
            {
                int         num    = 0;
                Mem_useitem value2 = null;
                if (Comm_UserDatas.Instance.User_useItem.TryGetValue(70, out value2))
                {
                    num = value2.Value;
                }
                if (num == 0)
                {
                    hashSet2.Add(-1);
                }
            }
            List <string> requireShip = QuestKousyou.GetRequireShip(mem_quest.Rid);

            if (requireShip.Count > 0)
            {
                string yomi = Mst_DataManager.Instance.Mst_ship[flagShip.Ship_id].Yomi;
                if (!requireShip.Any((string x) => x.Equals(yomi)))
                {
                    hashSet2.Add(-1);
                }
            }
            if (hashSet2.Contains(-1))
            {
                mem_quest.StateChange(this, QuestState.WAITING_START);
                changeFmt.State = mem_quest.State;
                if (value != null)
                {
                    foreach (int item3 in value.Counter_id)
                    {
                        Mem_questcount value3 = null;
                        if (Comm_UserDatas.Instance.User_questcount.TryGetValue(item3, out value3))
                        {
                            value3.Reset(deleteFlag: false);
                        }
                    }
                }
            }
            else if (hashSet2.Contains(-2))
            {
                changeFmt.InvalidFlag = true;
            }
        }
示例#20
0
        public List <QuestItemGetFmt> ClearItemGet(User_QuestFmt fmt)
        {
            Mem_quest value = null;

            if (!Comm_UserDatas.Instance.User_quest.TryGetValue(fmt.No, out value))
            {
                return(null);
            }
            if (value.State != QuestState.COMPLETE)
            {
                return(null);
            }
            value.StateChange(this, QuestState.END);
            Mst_questcount value2 = null;

            if (Mst_DataManager.Instance.Mst_questcount.TryGetValue(value.Rid, out value2))
            {
                foreach (KeyValuePair <int, bool> item in value2.Reset_flag)
                {
                    if (item.Value)
                    {
                        Mem_questcount value3 = null;
                        if (Comm_UserDatas.Instance.User_questcount.TryGetValue(item.Key, out value3))
                        {
                            value3.Reset(deleteFlag: true);
                        }
                    }
                }
            }
            Mst_quest mst_quest         = this.mst_quest[fmt.No];
            List <QuestItemGetFmt> list = new List <QuestItemGetFmt>();

            foreach (KeyValuePair <enumMaterialCategory, int> item2 in fmt.GetMaterial)
            {
                if (item2.Key <= enumMaterialCategory.Bauxite)
                {
                    list.Add(_ItemGet(item2.Key, item2.Value));
                }
            }
            int  slotModelChangeId  = mst_quest.GetSlotModelChangeId(1);
            int  slotModelChangeId2 = mst_quest.GetSlotModelChangeId(2);
            bool useCrewFlag        = false;
            bool maxExpFlag         = false;

            if (slotModelChangeId > 0)
            {
                maxExpFlag  = mst_quest.IsLevelMax(mst_slotitemchange[slotModelChangeId]);
                useCrewFlag = mst_quest.IsUseCrew(mst_slotitemchange[slotModelChangeId]);
            }
            list.Add(_ItemGet(mst_quest.Get_1_type, mst_quest.Get_1_id, mst_quest.Get_1_count, maxExpFlag, useCrewFlag));
            bool useCrewFlag2 = false;
            bool maxExpFlag2  = false;

            if (slotModelChangeId2 > 0)
            {
                maxExpFlag2  = mst_quest.IsLevelMax(mst_slotitemchange[slotModelChangeId2]);
                useCrewFlag2 = mst_quest.IsUseCrew(mst_slotitemchange[slotModelChangeId2]);
            }
            list.Add(_ItemGet(mst_quest.Get_2_type, mst_quest.Get_2_id, mst_quest.Get_2_count, maxExpFlag2, useCrewFlag2));
            return(list.FindAll((QuestItemGetFmt item) => item != null));
        }