Пример #1
0
        public void RegisterEvent(TrackManager manager)
        {
            manager.BattleResultEvent += (sender, args) =>
            {
                if (!IsTracking)
                {
                    return;
                }

                if (args.MapWorldId != 2 || args.MapAreaId != 3)
                {
                    return;                                                              // 2-3
                }
                if (args.EnemyName != "敵主力打撃群")
                {
                    return;                                             // boss
                }
                if (!"SAB".Contains(args.Rank))
                {
                    return;                                             // 승리
                }
                var shipTable = new int[]
                {
                    59,                      // 古鷹
                    60,                      // 加古
                    61,                      // 青葉
                    69,                      // 鳥海
                    51,                      // 天龍
                    123,                     // 衣笠
                    262,                     // 古鷹改
                    263,                     // 加古改
                    264,                     // 青葉改
                    272,                     // 鳥海改
                    213,                     // 天龍改
                    295,                     // 衣笠改
                    416,                     // 古鷹改二
                    417,                     // 加古改二
                    427,                     // 鳥海改二
                    142,                     // 衣笠改二
                };

                var fleet = KanColleClient.Current.Homeport.Organization.Fleets.FirstOrDefault(x => x.Value.IsInSortie).Value;
                if (fleet?.Ships.Count(x => shipTable.Contains(x.Info.Id)) < 6)
                {
                    return;
                }

                count = count.Add(1).Max(max_count);

                ProcessChanged?.Invoke(this, emptyEventArgs);
            };
        }
Пример #2
0
        public void RegisterEvent(TrackManager manager)
        {
            manager.HenseiEvent += (sender, args) =>
            {
                if (!IsTracking)
                {
                    return;
                }
                count = 0;

                var shipTable = new int[]
                {
                    427,                     // 鳥海改二
                    59,                      // 古鷹
                    60,                      // 加古
                    61,                      // 青葉
                    51,                      // 天龍
                    123,                     // 衣笠
                    115,                     // 夕張
                    262,                     // 古鷹改
                    263,                     // 加古改
                    264,                     // 青葉改
                    213,                     // 天龍改
                    295,                     // 衣笠改
                    293,                     // 夕張改
                    416,                     // 古鷹改二
                    417,                     // 加古改二
                    142,                     // 衣笠改二
                };

                var homeport = KanColleClient.Current.Homeport;
                foreach (var fleet in homeport.Organization.Fleets)
                {
                    var ships = fleet.Value.Ships;
                    if (ships.Length <= 0)
                    {
                        continue;
                    }

                    if ((ships[0]?.Info.Id ?? 0) != 427)
                    {
                        continue;                                                      // 鳥海改二
                    }
                    count = Math.Max(
                        count,
                        ships.Count(x => shipTable.Contains(x.Info.Id))
                        );
                }

                ProcessChanged?.Invoke(this, emptyEventArgs);
            };
        }
Пример #3
0
        public void RegisterEvent(TrackManager manager)
        {
            manager.BattleResultEvent += (sender, args) =>
            {
                if (!IsTracking)
                {
                    return;
                }

                if (args.MapWorldId != 1 || args.MapAreaId != 6)
                {
                    return;                                                              // 1-6
                }
                if (args.MapNodeId != 14 && args.MapNodeId != 17)
                {
                    return;                                                               // 1-6-N node
                }
                var flagshipTable = new int[]
                {
                    463,                     // 朝潮改二
                    468,                     // 朝潮改二丁
                };
                var shipTable = new int[]
                {
                    463,                     // 朝潮改二
                    468,                     // 朝潮改二丁
                    96,                      // 大潮
                    97,                      // 満潮
                    98,                      // 荒潮
                    199,                     // 大潮改二
                    249,                     // 大潮改
                    250,                     // 満潮改
                    251,                     // 荒潮改
                };

                var fleet = KanColleClient.Current.Homeport.Organization.Fleets.FirstOrDefault(x => x.Value.IsInSortie).Value;
                var ships = fleet?.Ships;

                if (!flagshipTable.Contains((ships[0]?.Info.Id ?? 0)))
                {
                    return;                                                                    // 아사시오改2 기함
                }
                if (ships.Count(x => shipTable.Contains(x.Info.Id)) < 4)
                {
                    return;
                }

                count = count.Add(1).Max(max_count);

                ProcessChanged?.Invoke(this, emptyEventArgs);
            };
        }
Пример #4
0
        public void RegisterEvent(TrackManager manager)
        {
            manager.MissionResultEvent += (sender, args) =>
            {
                if (!IsTracking) return;
                if (!args.IsSuccess) return;
                if (args.Name != "潜水艦派遣作戦") return;

                count = count.Add(1).Max(max_count);

                ProcessChanged?.Invoke(this, emptyEventArgs);
            };
        }
Пример #5
0
        public void RegisterEvent(TrackManager manager)
        {
            manager.RepairStartEvent += (sender, args) =>
            {
                if (!IsTracking)
                {
                    return;
                }

                count += count >= max_count ? 0 : 1;
                ProcessChanged?.Invoke(this, emptyEventArgs);
            };
        }
Пример #6
0
        public void RegisterEvent(TrackManager manager)
        {
            manager.BattleResultEvent += (sender, args) =>
            {
                if (!IsTracking)
                {
                    return;
                }

                if (args.MapWorldId != 5 || args.MapAreaId != 1)
                {
                    return;                                                              // 5-1
                }
                if (args.EnemyName != "敵前線司令艦隊")
                {
                    return;                                              // boss
                }
                if ("S" != args.Rank)
                {
                    return;                                   // S승리
                }
                var shipTable = new int[]
                {
                    21,                      // 長良
                    34,                      // 暁
                    36,                      // 雷
                    37,                      // 電
                    85,                      // 霧島
                    86,                      // 比叡
                    150,                     // 比叡改二
                    152,                     // 霧島改二
                    210,                     // 比叡改
                    212,                     // 霧島改
                    218,                     // 長良改
                    234,                     // 暁改
                    236,                     // 雷改
                    237,                     // 電改
                    437,                     // 暁改二
                };

                var fleet = KanColleClient.Current.Homeport.Organization.Fleets.FirstOrDefault(x => x.Value.IsInSortie).Value;
                if (fleet?.Ships.Count(x => shipTable.Contains(x.Info.Id)) < 6)
                {
                    return;
                }

                count = count.Add(1).Max(max_count);

                ProcessChanged?.Invoke(this, emptyEventArgs);
            };
        }
Пример #7
0
        public void RegisterEvent(TrackManager manager)
        {
            manager.BattleResultEvent += (sender, args) =>
            {
                if (!IsTracking)
                {
                    return;
                }

                if (args.MapWorldId != 4 || args.MapAreaId != 2)
                {
                    return;                                                              // 4-2
                }
                if (args.EnemyName != "東方主力艦隊")
                {
                    return;                                             // boss
                }
                if ("S" != args.Rank)
                {
                    return;                                   // S승리
                }
                var shipTable = new int[]
                {
                    26,                      // 扶桑
                    27,                      // 山城
                    80,                      // 長門
                    81,                      // 陸奥
                    275,                     // 長門改
                    276,                     // 陸奥改
                    286,                     // 扶桑改
                    287,                     // 山城改
                    411,                     // 扶桑改二
                    412,                     // 山城改二
                };

                var fleet = KanColleClient.Current.Homeport.Organization.Fleets.FirstOrDefault(x => x.Value.IsInSortie).Value;
                var ships = fleet?.Ships;

                if (!shipTable.Contains((ships[0]?.Info.Id ?? 0)))
                {
                    return;                                                                // 나가토, 무츠, 후소, 야마시로 기함
                }
                if (ships.Count(x => shipTable.Contains(x.Info.Id)) < 4)
                {
                    return;                                                                      // 미포함
                }
                count = count.Add(1).Max(max_count);

                ProcessChanged?.Invoke(this, emptyEventArgs);
            };
        }
Пример #8
0
        public void RegisterEvent(TrackManager manager)
        {
            manager.BattleResultEvent += (sender, args) =>
            {
                if (!IsTracking)
                {
                    return;
                }

                if (args.MapWorldId != 5 || args.MapAreaId != 1)
                {
                    return;                                                              // 5-1
                }
                if (args.EnemyName != "敵前線司令艦隊")
                {
                    return;                                              // boss
                }
                if ("S" != args.Rank)
                {
                    return;                                   // S승리
                }
                var shipTable = new int[]
                {
                    26,                      // 扶桑
                    27,                      // 山城
                    43,                      // 時雨
                    70,                      // 最上
                    73,                      // 最上改
                    97,                      // 満潮
                    145,                     // 時雨改二
                    243,                     // 時雨改
                    250,                     // 満潮改
                    286,                     // 扶桑改
                    287,                     // 山城改
                    411,                     // 扶桑改二
                    412,                     // 山城改二
                };

                var fleet = KanColleClient.Current.Homeport.Organization.Fleets.FirstOrDefault(x => x.Value.IsInSortie).Value;
                var ships = fleet?.Ships;

                if (ships.Count(x => shipTable.Contains(x.Info.Id)) < 5)
                {
                    return;
                }

                count = count.Add(1).Max(max_count);

                ProcessChanged?.Invoke(this, emptyEventArgs);
            };
        }
Пример #9
0
        public void RegisterEvent(TrackManager manager)
        {
            manager.BattleResultEvent += (sender, args) =>
            {
                if (!IsTracking)
                {
                    return;
                }

                if (args.MapWorldId != 4 || args.MapAreaId != 5)
                {
                    return;                                                              // 4-5
                }
                if (args.EnemyName != "リランカ島港湾守備隊")
                {
                    return;                                                 // boss
                }
                if ("S" != args.Rank)
                {
                    return;                                   // S승리
                }
                var flagshipTable = new int[]
                {
                    83,                      // 赤城
                    277,                     // 赤城改
                };
                var shipTable = new int[]
                {
                    83,                      // 赤城
                    277,                     // 赤城改
                    84,                      // 加賀
                    278,                     // 加賀改
                };

                var fleet = KanColleClient.Current.Homeport.Organization.Fleets.FirstOrDefault(x => x.Value.IsInSortie).Value;
                var ships = fleet?.Ships;

                if (!flagshipTable.Contains((ships[0]?.Info.Id ?? 0)))
                {
                    return;                                                                    // 아카기 기함
                }
                if (ships.Count(x => shipTable.Contains(x.Info.Id)) < 2)
                {
                    return;
                }

                count = count.Add(1).Max(max_count);

                ProcessChanged?.Invoke(this, emptyEventArgs);
            };
        }
Пример #10
0
        public void RegisterEvent(TrackManager manager)
        {
            manager.BattleResultEvent += (sender, args) =>
            {
                if (!IsTracking)
                {
                    return;
                }

                if (args.MapWorldId != 2 || args.MapAreaId != 3)
                {
                    return;                                                              // 2-3
                }
                if (args.EnemyName != "敵主力打撃群")
                {
                    return;                                             // boss
                }
                if ("S" != args.Rank)
                {
                    return;                                   // S승리
                }
                var shipTable = new int[]
                {
                    43,                      // 時雨
                    46,                      // 五月雨
                    145,                     // 時雨改二
                    242,                     // 白露改
                    243,                     // 時雨改
                    246,                     // 五月雨改
                    323,                     // 春雨改
                    405,                     // 春雨
                };

                var fleet = KanColleClient.Current.Homeport.Organization.Fleets.FirstOrDefault(x => x.Value.IsInSortie).Value;
                var ships = fleet?.Ships;

                if ((ships[0]?.Info.Id ?? 0) != 242)
                {
                    return;                                                  // 시라츠유改 기함
                }
                if (ships.Count(x => shipTable.Contains(x.Info.Id)) < 4)
                {
                    return;
                }

                count = count.Add(1).Max(max_count);

                ProcessChanged?.Invoke(this, emptyEventArgs);
            };
        }
Пример #11
0
        public void RegisterEvent(TrackManager manager)
        {
            manager.HenseiEvent += (sender, args) =>
            {
                if (!IsTracking)
                {
                    return;
                }
                count = 0;

                var flagshipTable = new int[]
                {
                    463,                     // 朝潮改二
                    468,                     // 朝潮改二丁
                };
                var shipTable = new int[]
                {
                    463,                     // 朝潮改二
                    468,                     // 朝潮改二丁
                    96,                      // 大潮
                    97,                      // 満潮
                    98,                      // 荒潮
                    249,                     // 大潮改
                    250,                     // 満潮改
                    251,                     // 荒潮改
                    199,                     // 大潮改二
                };

                var homeport = KanColleClient.Current.Homeport;
                foreach (var fleet in homeport.Organization.Fleets)
                {
                    var ships = fleet.Value.Ships;
                    if (ships.Length <= 0)
                    {
                        continue;
                    }

                    if (!flagshipTable.Contains((ships[0]?.Info.Id ?? 0)))
                    {
                        continue;                                                                        // 아사시오改2 기함
                    }
                    count = Math.Max(
                        count,
                        ships.Length != 4 ? 0 : ships.Count(x => shipTable.Contains(x.Info.Id))
                        );
                }

                ProcessChanged?.Invoke(this, emptyEventArgs);
            };
        }
Пример #12
0
        public void RegisterEvent(TrackManager manager)
        {
            manager.BattleResultEvent += (sender, args) =>
            {
                if (!IsTracking)
                {
                    return;
                }

                if (args.MapWorldId != 1 || args.MapAreaId != 5)
                {
                    return;                                                              // 1-5
                }
                if (args.EnemyName != "敵通商破壊主力艦隊")
                {
                    return;                                                // boss
                }
                if (!"SABC".Contains(args.Rank))
                {
                    return;                                              // C패배 이상
                }
                var shipTable = new int[]
                {
                    34,                      // 暁
                    35,                      // 響
                    36,                      // 雷
                    37,                      // 電
                    147,                     // Верный
                    234,                     // 暁改
                    235,                     // 響改
                    236,                     // 雷改
                    237,                     // 電改
                    437,                     // 暁改二
                };

                var fleet = KanColleClient.Current.Homeport.Organization.Fleets.FirstOrDefault(x => x.Value.IsInSortie).Value;
                if (fleet?.Ships.Length != 4)
                {
                    return;
                }
                if (fleet?.Ships.Count(x => shipTable.Contains(x.Info.Id)) < 4)
                {
                    return;
                }

                count = count.Add(1).Max(max_count);

                ProcessChanged?.Invoke(this, emptyEventArgs);
            };
        }
Пример #13
0
        public void RegisterEvent(TrackManager manager)
        {
            manager.CreateShipEvent += (sender, args) =>
            {
                if (!IsTracking)
                {
                    return;
                }

                count = count.Add(1).Max(max_count);

                ProcessChanged?.Invoke(this, emptyEventArgs);
            };
        }
Пример #14
0
        public void RegisterEvent(TrackManager manager)
        {
            manager.DestoryItemEvent += (sender, args) =>
            {
                if (!IsTracking)
                {
                    return;
                }

                count = count.Add(args.itemList.Length).Max(max_count);

                ProcessChanged?.Invoke(this, emptyEventArgs);
            };
        }
Пример #15
0
        public void RegisterEvent(ApiEvent apiEvent)
        {
            apiEvent.MissionResultEvent += (sender, args) =>
            {
                if (!IsTracking)
                {
                    return;
                }

                count += count >= max_count ? 0 : 1;

                ProcessChanged?.Invoke(this, new EventArgs());
            };
        }
Пример #16
0
        public void RegisterEvent(ApiEvent apiEvent)
        {
            apiEvent.BattleResultEvent += (sender, args) =>
            {
                if (!IsTracking)
                {
                    return;
                }

                finished = true;

                ProcessChanged?.Invoke(this, new EventArgs());
            };
        }
Пример #17
0
        public void RegisterEvent(TrackManager manager)
        {
            manager.BattleResultEvent += (sender, args) =>
            {
                if (!IsTracking)
                {
                    return;
                }

                if (args.MapWorldId != 5 || args.MapAreaId != 2)
                {
                    return;                                                              // 5-2
                }
                if (args.EnemyName != "敵機動部隊本隊")
                {
                    return;                                              // boss
                }
                if ("S" != args.Rank)
                {
                    return;                                   // S승리
                }
                var shipTable = new int[]
                {
                    196,                     // 飛龍改二
                    90,                      // 蒼龍
                    197,                     // 蒼龍改二
                    279,                     // 蒼龍改
                };

                var fleet = KanColleClient.Current.Homeport.Organization.Fleets.FirstOrDefault(x => x.Value.IsInSortie).Value;
                var ships = fleet?.Ships;

                if ((ships[0]?.Info.Id ?? 0) != 196)
                {
                    return;                                                  // 히류改2 기함
                }
                if (ships.Count(x => shipTable.Contains(x.Info.Id)) < 2)
                {
                    return;                                                                      // 히류改2, 소류 필요
                }
                if (ships.Count(x => x.Info.ShipType.Id == 2) < 2)
                {
                    return;                                                                // 구축 2 필요
                }
                count = count.Add(1).Max(max_count);

                ProcessChanged?.Invoke(this, emptyEventArgs);
            };
        }
Пример #18
0
        public void RegisterEvent(TrackManager manager)
        {
            manager.BattleResultEvent += (sender, args) =>
            {
                if (!IsTracking)
                {
                    return;
                }

                if (args.MapWorldId != 2 || (args.MapAreaId != 2 && args.MapAreaId != 3))
                {
                    return;                                                                                       // 2-2 or 2-3
                }
                if ("S" != args.Rank)
                {
                    return;                                   // S승리
                }
                var fleet    = KanColleClient.Current.Homeport.Organization.Fleets.FirstOrDefault(x => x.Value.IsInSortie).Value;
                var ships    = fleet?.Ships;
                var flagship = ships[0]?.Info.ShipType.Id;

                if (flagship != 3)
                {
                    return;                                // 기함 경순
                }
                if (ships.Count(x => x.Info.ShipType.Id == 2) < 4)
                {
                    return;                                                                // 구축 4척
                }
                if (args.MapAreaId == 2)
                {
                    if (args.EnemyName != "敵主力艦隊")
                    {
                        return;                                                // boss
                    }
                    count1 = count1.Add(1).Max(1);
                }
                else if (args.MapAreaId == 3)
                {
                    if (args.EnemyName != "敵通商破壊艦隊")
                    {
                        return;                                                  // boss
                    }
                    count2 = count2.Add(1).Max(1);
                }

                ProcessChanged?.Invoke(this, emptyEventArgs);
            };
        }
Пример #19
0
        public void RegisterEvent(TrackManager manager)
        {
            manager.BattleResultEvent += (sender, args) =>
            {
                if (!IsTracking)
                {
                    return;
                }

                if (args.MapWorldId != 5 || args.MapAreaId != 2)
                {
                    return;                                                              // 5-2
                }
                if (args.EnemyName != "敵機動部隊本隊")
                {
                    return;                                              // boss
                }
                if ("S" != args.Rank)
                {
                    return;                                   // S승리
                }
                var shipTable = new int[]
                {
                    93,                      // 朧
                    110,                     // 翔鶴
                    111,                     // 瑞鶴
                    112,                     // 瑞鶴改
                    132,                     // 秋雲
                    230,                     // 朧改
                    288,                     // 翔鶴改
                    301,                     // 秋雲改
                    461,                     // 翔鶴改二
                    462,                     // 瑞鶴改二
                    466,                     // 翔鶴改二甲
                    467,                     // 瑞鶴改二甲
                };

                var fleet = KanColleClient.Current.Homeport.Organization.Fleets.FirstOrDefault(x => x.Value.IsInSortie).Value;
                var ships = fleet?.Ships;

                if (ships.Count(x => shipTable.Contains(x.Info.Id)) < 4)
                {
                    return;
                }
                count = count.Add(1).Max(max_count);

                ProcessChanged?.Invoke(this, emptyEventArgs);
            };
        }
Пример #20
0
        public void RegisterEvent(TrackManager manager)
        {
            manager.HenseiEvent += (sender, args) =>
            {
                if (!IsTracking)
                {
                    return;
                }
                count = 0;

                var flagshipTable = new int[]
                {
                    64,                      // 足柄
                    267,                     // 足柄改
                    193,                     // 足柄改二
                };
                var shipTable = new int[]
                {
                    64,                      // 足柄
                    267,                     // 足柄改
                    193,                     // 足柄改二
                    99,                      // 球磨
                    21,                      // 長良
                    215,                     // 球磨改
                    218,                     // 長良改
                };

                var homeport = KanColleClient.Current.Homeport;
                foreach (var fleet in homeport.Organization.Fleets)
                {
                    var ships = fleet.Value.Ships;
                    if (ships.Length <= 0)
                    {
                        continue;
                    }

                    if (!flagshipTable.Contains((ships[0]?.Info.Id ?? 0)))
                    {
                        continue;                                                                        // 아시가라 기함
                    }
                    count = Math.Max(
                        count,
                        ships.Count(x => shipTable.Contains(x.Info.Id))
                        );
                }

                ProcessChanged?.Invoke(this, emptyEventArgs);
            };
        }
Пример #21
0
        public void RegisterEvent(TrackManager manager)
        {
            manager.HenseiEvent += (sender, args) =>
            {
                if (!IsTracking)
                {
                    return;
                }

                var homeport = KanColleClient.Current.Homeport;
                count = homeport.Organization.Fleets[1]?.Ships.Length.Max(max_count) ?? 0;

                ProcessChanged?.Invoke(this, emptyEventArgs);
            };
        }
Пример #22
0
        public void RegisterEvent(TrackManager manager)
        {
            manager.BattleResultEvent += (sender, args) =>
            {
                if (!IsTracking)
                {
                    return;
                }

                if (args.MapWorldId != 1 || args.MapAreaId != 5)
                {
                    return;                                                              // 1-5
                }
                if (args.EnemyName != "敵通商破壊主力艦隊")
                {
                    return;                                                // boss
                }
                if (!"SABC".Contains(args.Rank))
                {
                    return;                                              // C패배 이상
                }
                var shipTable = new int[]
                {
                    9,                       // 吹雪
                    10,                      // 白雪
                    32,                      // 初雪
                    33,                      // 叢雲
                    201,                     // 吹雪改
                    202,                     // 白雪改
                    203,                     // 初雪改
                    205,                     // 叢雲改
                    420,                     // 叢雲改二
                    426,                     // 吹雪改二
                };

                var fleet = KanColleClient.Current.Homeport.Organization.Fleets.FirstOrDefault(x => x.Value.IsInSortie).Value;
                var ships = fleet?.Ships;

                if (ships.Count(x => shipTable.Contains(x.Info.Id)) < 4)
                {
                    return;
                }

                count = count.Add(1).Max(max_count);

                ProcessChanged?.Invoke(this, emptyEventArgs);
            };
        }
Пример #23
0
        public void RegisterEvent(TrackManager manager)
        {
            manager.HenseiEvent += (sender, args) =>
            {
                if (!IsTracking)
                {
                    return;
                }
                count = 0;

                var shipTable = new int[]
                {
                    200,                     // 阿武隈改二
                    35,                      // 響
                    133,                     // 夕雲
                    135,                     // 長波
                    132,                     // 秋雲
                    50,                      // 島風
                    235,                     // 響改
                    302,                     // 夕雲改
                    304,                     // 長波改
                    301,                     // 秋雲改
                    229,                     // 島風改
                    147,                     // Верный
                };

                var homeport = KanColleClient.Current.Homeport;
                foreach (var fleet in homeport.Organization.Fleets)
                {
                    var ships = fleet.Value.Ships;
                    if (ships.Length <= 0)
                    {
                        continue;
                    }

                    if ((ships[0]?.Info.Id ?? 0) != 200)
                    {
                        continue;                                                      // 아부쿠마改2 기함
                    }
                    count = Math.Max(
                        count,
                        ships.Count(x => shipTable.Contains(x.Info.Id))
                        );
                }

                ProcessChanged?.Invoke(this, emptyEventArgs);
            };
        }
Пример #24
0
        public void RegisterEvent(TrackManager manager)
        {
            manager.HenseiEvent += (sender, args) =>
            {
                if (!IsTracking)
                {
                    return;
                }
                count = 0;

                var flagship = new int[]
                {
                    53,                     // 名取
                    221,                    // 名取改
                };
                var shipTable = new int[]
                {
                    53,                     // 名取
                    22,                     // 五十鈴
                    113,                    // 鬼怒
                    221,                    // 名取改
                    219,                    // 五十鈴改
                    289,                    // 鬼怒改
                    141,                    // 五十鈴改二
                };

                var homeport = KanColleClient.Current.Homeport;
                foreach (var fleet in homeport.Organization.Fleets)
                {
                    var ships = fleet.Value.Ships;
                    if (ships.Length <= 0)
                    {
                        continue;
                    }

                    if (!flagship.Contains((ships[0]?.Info.Id ?? 0)))
                    {
                        continue;                                                                   // 나토리 기함
                    }
                    count = Math.Max(
                        count,
                        ships.Count(x => shipTable.Contains(x.Info.Id))
                        );
                }

                ProcessChanged?.Invoke(this, emptyEventArgs);
            };
        }
Пример #25
0
        public void RegisterEvent(TrackManager manager)
        {
            manager.BattleResultEvent += (sender, args) =>
            {
                if (!IsTracking)
                {
                    return;
                }

                if (args.MapWorldId != 1 || args.MapAreaId != 4)
                {
                    return;                                                              // 1-4
                }
                if (args.EnemyName != "敵機動部隊")
                {
                    return;                                            // boss
                }
                if ("S" != args.Rank)
                {
                    return;                                   // S승리
                }
                var shipTable = new int[]
                {
                    6,                       // 長月
                    28,                      // 皐月
                    29,                      // 文月
                    256,                     // 皐月改
                    257,                     // 文月改
                    258,                     // 長月改
                    418,                     // 皐月改二
                };

                var fleet = KanColleClient.Current.Homeport.Organization.Fleets.FirstOrDefault(x => x.Value.IsInSortie).Value;
                var ships = fleet?.Ships;

                if (ships.Count(x => shipTable.Contains(x.Info.Id)) < 3)
                {
                    return;
                }
                if (ships.Count(x => x.Info.ShipType.Id == 2) < 4)
                {
                    return;                                                                // 구축함 4척
                }
                count = count.Add(1).Max(max_count);

                ProcessChanged?.Invoke(this, emptyEventArgs);
            };
        }
Пример #26
0
        public void RegisterEvent(TrackManager manager)
        {
            manager.BattleResultEvent += (sender, args) =>
            {
                if (!IsTracking)
                {
                    return;
                }

                if (args.MapWorldId != 3 || args.MapAreaId != 1)
                {
                    return;                                                              // 3-1
                }
                if (args.EnemyName != "敵北方侵攻艦隊")
                {
                    return;                                              // boss
                }
                if ("S" != args.Rank)
                {
                    return;                                   // S승리
                }
                var shipTable = new int[]
                {
                    38,                      // 初春
                    39,                      // 子日
                    40,                      // 若葉
                    41,                      // 初霜
                    238,                     // 初春改
                    239,                     // 子日改
                    240,                     // 若葉改
                    241,                     // 初霜改
                    326,                     // 初春改二
                    419,                     // 初霜改二
                };

                var fleet = KanColleClient.Current.Homeport.Organization.Fleets.FirstOrDefault(x => x.Value.IsInSortie).Value;
                var ships = fleet?.Ships;

                if (ships.Count(x => shipTable.Contains(x.Info.Id)) < 4)
                {
                    return;
                }

                count = count.Add(1).Max(max_count);

                ProcessChanged?.Invoke(this, emptyEventArgs);
            };
        }
Пример #27
0
        public void RegisterEvent(TrackManager manager)
        {
            manager.BattleResultEvent += (sender, args) =>
            {
                if (!IsTracking)
                {
                    return;
                }

                if (args.MapWorldId != 2 || args.MapAreaId != 5)
                {
                    return;                                                              // 2-5
                }
                if (args.EnemyName != "敵主力艦隊")
                {
                    return;                                            // boss
                }
                if (!"SA".Contains(args.Rank))
                {
                    return;                                            // A승리 이상
                }
                var shipTable = new int[]
                {
                    12,                      // 磯波
                    13,                      // 綾波
                    14,                      // 敷波
                    195,                     // 綾波改二
                    206,                     // 磯波改
                    207,                     // 綾波改
                    208,                     // 敷波改
                    368,                     // 浦波改
                    486,                     // 浦波
                };

                var fleet    = KanColleClient.Current.Homeport.Organization.Fleets.FirstOrDefault(x => x.Value.IsInSortie).Value;
                var ships    = fleet?.Ships;
                var flagship = ships[0]?.Info.ShipType.Id;

                if (ships.Count(x => shipTable.Contains(x.Info.Id)) < 4)
                {
                    return;
                }

                count = count.Add(1).Max(max_count);

                ProcessChanged?.Invoke(this, emptyEventArgs);
            };
        }
Пример #28
0
        public void RegisterEvent(TrackManager manager)
        {
            manager.DestoryItemEvent += (sender, args) =>
            {
                if (!IsTracking)
                {
                    return;
                }

                var slotitems = KanColleClient.Current.Homeport.Itemyard.SlotItems;
                count_1 = count_1.Add(args.itemList.Count(x => (slotitems[x]?.Info.Id ?? 0) == 37)).Max(2);
                count_2 = count_2.Add(args.itemList.Count(x => (slotitems[x]?.Info.Id ?? 0) == 38)).Max(2);

                ProcessChanged?.Invoke(this, emptyEventArgs);
            };
        }
Пример #29
0
        public void RegisterEvent(TrackManager manager)
        {
            manager.BattleResultEvent += (sender, args) =>
            {
                if (!IsTracking)
                {
                    return;
                }

                if (args.MapWorldId != 2 || args.MapAreaId != 3)
                {
                    return;                                                              // 2-3
                }
                if (args.EnemyName != "敵主力打撃群")
                {
                    return;                                             // boss
                }
                if ("S" != args.Rank)
                {
                    return;                                   // S승리
                }
                var shipTable = new int[]
                {
                    271,                     // 摩耶改
                    428,                     // 摩耶改二
                };

                var fleet = KanColleClient.Current.Homeport.Organization.Fleets.FirstOrDefault(x => x.Value.IsInSortie).Value;
                var ships = fleet?.Ships;

                if (!shipTable.Contains((ships[0]?.Info.Id ?? 0)))
                {
                    return;                                                                // 마야改 기함
                }
                if (ships.Count(x => x.Info.ShipType.Id == 3) < 1)
                {
                    return;                                                                // 경순 1척
                }
                if (ships.Count(x => x.Info.ShipType.Id == 2) < 2)
                {
                    return;                                                                // 구축 2척
                }
                count = count.Add(1).Max(max_count);

                ProcessChanged?.Invoke(this, emptyEventArgs);
            };
        }
Пример #30
0
        public void RegisterEvent(TrackManager manager)
        {
            manager.BattleResultEvent += (sender, args) =>
            {
                if (!IsTracking)
                {
                    return;
                }

                if (args.MapWorldId != 2 || args.MapAreaId != 2)
                {
                    return;                                                              // 2-3
                }
                if (args.EnemyName != "敵主力打撃群")
                {
                    return;                                             // boss
                }
                if (!"SAB".Contains(args.Rank))
                {
                    return;                                             // 승리
                }
                var shipTable = new int[]
                {
                    26,                      // 扶桑
                    27,                      // 山城
                    70,                      // 最上
                    43,                      // 時雨
                    286,                     // 扶桑改
                    287,                     // 山城改
                    73,                      // 最上改
                    243,                     // 時雨改
                    411,                     // 扶桑改二
                    412,                     // 山城改二
                    145,                     // 時雨改二
                };

                var fleet = KanColleClient.Current.Homeport.Organization.Fleets.FirstOrDefault(x => x.Value.IsInSortie).Value;
                if (fleet?.Ships.Count(x => shipTable.Contains(x.Info.Id)) < 4)
                {
                    return;
                }

                count = count.Add(1).Max(max_count);

                ProcessChanged?.Invoke(this, emptyEventArgs);
            };
        }