/// <summary>
        /// 해당 드랍 데이터가 보스 조건을 만족하고 있는지를 구합니다.
        /// </summary>
        public bool DropBossCalc(DropStringLists dropdata)
        {
            if (Drop_BossCheck == null)
            {
                return(true);
            }
            if (Drop_BossCheck == true && dropdata.Boss == "O")
            {
                return(true);
            }
            if (Drop_BossCheck == false && dropdata.Boss == "X")
            {
                return(true);
            }

            return(false);
        }
        /// <summary>
        /// 해당 드랍 데이터가 맵 조건을 만족하고 있는지를 구합니다.
        /// </summary>
        public bool DropMapInfoCalc(DropStringLists dropdata)
        {
            int dropworld = 0;
            int dropmap   = 0;
            int dropnode  = 0;

            string[] mapText = dropdata.MapInfo.Split('-');

            if (int.TryParse(mapText[0], out dropworld) && int.TryParse(mapText[1], out dropmap) && int.TryParse(mapText[2], out dropnode))
            {
                if ((Drop_World == 0 || dropworld == Drop_World) && (Drop_Map == 0 || dropmap == Drop_Map) && (Drop_BossCheck == true || Drop_Nodes.Count == 0 || Drop_Nodes.Any(x => dropnode == x)))
                {
                    return(true);
                }
            }

            return(false);
        }
        /// <summary>
        /// 해당 드랍 데이터가 랭크 조건을 만족하고 있는지를 구합니다.
        /// </summary>
        public bool DropRankCalc(DropStringLists dropdata)
        {
            if (Drop_RankS && dropdata.Rank == "S")
            {
                return(true);
            }
            if (Drop_RankA && dropdata.Rank == "A")
            {
                return(true);
            }
            if (Drop_RankB && dropdata.Rank == "B")
            {
                return(true);
            }
            if (Drop_RankC && (dropdata.Rank == "C" || dropdata.Rank == "D" || dropdata.Rank == "E"))
            {
                return(true);
            }

            return(false);
        }
Example #4
0
        private void LogToBin(LogType Type, string format, params object[] args)
        {
            string MainFolder = Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location);

            if (!Directory.Exists(Path.Combine(MainFolder, "Bin")))
            {
                Directory.CreateDirectory(Path.Combine(MainFolder, "Bin"));
            }
            #region BuildItem
            if (Type == LogType.BuildItem)
            {
                var binPath = Path.Combine(MainFolder, "Bin", "ItemBuild2.bin");
                var item    = new ItemStringLists();

                item.Date      = args[0].ToString();
                item.Assistant = args[1].ToString();
                item.Fuel      = Convert.ToInt32(args[2].ToString());
                item.Bullet    = Convert.ToInt32(args[3].ToString());
                item.Steel     = Convert.ToInt32(args[4].ToString());
                item.bauxite   = Convert.ToInt32(args[5].ToString());
                if (args[6].ToString() == "NA")
                {
                    item.Results = string.Empty;
                }
                else
                {
                    item.Results = args[6].ToString();
                }

                using (var fileStream = new FileStream(binPath, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite))
                    using (var writer = new BinaryWriter(fileStream))
                    {
                        writer.Seek(0, SeekOrigin.End);
                        writer.Write(item.Date);
                        writer.Write(item.Assistant);
                        writer.Write(item.Fuel);
                        writer.Write(item.Bullet);
                        writer.Write(item.Steel);
                        writer.Write(item.bauxite);
                        writer.Write(item.Results);

                        fileStream.Dispose();
                        fileStream.Close();
                        writer.Dispose();
                        writer.Close();
                    }
            }
            #endregion

            #region BuildShip
            else if (Type == LogType.BuildShip)
            {
                var binPath = Path.Combine(MainFolder, "Bin", "ShipBuild2.bin");
                var item    = new BuildStirngLists();

                item.Date      = args[0].ToString();
                item.Assistant = args[1].ToString();
                item.Fuel      = Convert.ToInt32(args[2].ToString());
                item.Bullet    = Convert.ToInt32(args[3].ToString());
                item.Steel     = Convert.ToInt32(args[4].ToString());
                item.bauxite   = Convert.ToInt32(args[5].ToString());
                item.UseItems  = Convert.ToInt32(args[6].ToString());
                item.Results   = args[7].ToString();

                using (var fileStream = new FileStream(binPath, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite))
                    using (var writer = new BinaryWriter(fileStream))
                    {
                        writer.Seek(0, SeekOrigin.End);
                        writer.Write(item.Date);
                        writer.Write(item.Assistant);
                        writer.Write(item.Fuel);
                        writer.Write(item.Bullet);
                        writer.Write(item.Steel);
                        writer.Write(item.bauxite);
                        writer.Write(item.UseItems);
                        writer.Write(item.Results);

                        fileStream.Dispose();
                        fileStream.Close();
                        writer.Dispose();
                        writer.Close();
                    }
            }
            #endregion

            #region ShipDrop
            else if (Type == LogType.ShipDrop)
            {
                var binPath = Path.Combine(MainFolder, "Bin", "Drop2.bin");
                var item    = new DropStringLists();

                item.Date       = args[0].ToString();
                item.SeaArea    = args[1].ToString();
                item.MapInfo    = args[2].ToString();
                item.Boss       = args[3].ToString();
                item.EnemyFleet = args[4].ToString();
                item.Rank       = args[5].ToString();
                item.Drop       = args[6].ToString();

                using (var fileStream = new FileStream(binPath, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite))
                    using (var writer = new BinaryWriter(fileStream))
                    {
                        writer.Seek(0, SeekOrigin.End);
                        writer.Write(item.Date);
                        writer.Write(item.SeaArea);
                        writer.Write(item.MapInfo);
                        writer.Write(item.Boss);
                        writer.Write(item.EnemyFleet);
                        writer.Write(item.Rank);
                        writer.Write(item.Drop);

                        fileStream.Dispose();
                        fileStream.Close();
                        writer.Dispose();
                        writer.Close();
                    }
            }
            #endregion
        }
        public List <DropStringLists> ReturnDropList(string FileName, bool IsNavi, bool ReturnAll = false)
        {
            var items = new List <DropStringLists>();

            var pagingList = new List <List <DropStringLists> >();

            var bytes = File.ReadAllBytes(FileName);

            using (var memoryStream = new MemoryStream(bytes))
                using (var reader = new BinaryReader(memoryStream))
                {
                    while (memoryStream.Position < memoryStream.Length)
                    {
                        var item = new DropStringLists
                        {
                            Date       = reader.ReadString(),
                            SeaArea    = reader.ReadString(),
                            MapInfo    = reader.ReadString(),
                            Boss       = reader.ReadString(),
                            EnemyFleet = reader.ReadString(),
                            Rank       = reader.ReadString(),
                            Drop       = reader.ReadString(),
                        };
                        //item.SeaArea = KanColleClient.Current.Translations.GetTranslation(item.SeaArea, TranslationType.OperationMaps, true);
                        //item.EnemyFleet = KanColleClient.Current.Translations.GetTranslation(item.EnemyFleet, TranslationType.OperationSortie, true);
                        items.Add(item);
                    }
                    memoryStream.Dispose();
                    memoryStream.Close();
                    reader.Dispose();
                    reader.Close();
                }
            items = DropListFilter(items);
            if (ReturnAll == true)
            {
                return(items);
            }

            int Page = 0, i = 0;

            do
            {
                if (i + 20 < items.Count)
                {
                    pagingList.Add(items.GetRange(i, 20));
                    Page++;
                }
                else
                {
                    pagingList.Add(items.GetRange(i, items.Count - Page * 20));
                }

                i = i + 20;
            } while (i < items.Count);
            this.DropMaxPage = Page;
            if (this.DropPages >= DropMaxPage)
            {
                this.DropPages = this.DropMaxPage;
            }
            if (IsNavi)
            {
                return(pagingList[this.DropPages]);
            }
            else
            {
                this.DropPages = this.DropMaxPage;
                return(pagingList[this.DropMaxPage]);
            }
        }