Пример #1
0
        private void PopulateActiveDungeonListView(EventListBattles dungeon)
        {
            listViewActiveDungeon.Items.Clear();
            PopulateActiveBattleListView(null);
            if (dungeon == null)
            {
                groupBoxDungeon.Text = "(No Active Dungeon)";
            }
            else
            {
                groupBoxDungeon.Text = dungeon.DungeonSession.Name;

                foreach (DataBattle battle in dungeon.Battles)
                {
                    string[] row =
                    {
                        (battle.HasBoss) ? "BOSS" : "",
                        battle.Name,
                        battle.RoundNumber.ToString(),
                        battle.Stamina.ToString()
                    };

                    listViewActiveDungeon.Items.Add(new ListViewItem(row));
                }
            }
        }
 private void PopulateActiveDungeonListView(EventListBattles dungeon)
 {
     this.listViewActiveDungeon.Items.Clear();
     if (dungeon == null)
     {
         this.groupBoxDungeon.Text = "(No Active Dungeon)";
     }
     else
     {
         this.groupBoxDungeon.Text = dungeon.UserDungeon.Name;
         foreach (DataBattle battle in dungeon.Battles)
         {
             this.listViewActiveDungeon.Items.Add(new ListViewItem(new string[4]
             {
                 battle.HasBoss ? "BOSS" : "",
                 battle.Name,
                 battle.RoundNumber.ToString(),
                 battle.Stamina.ToString()
             }));
         }
         foreach (ColumnHeader column in this.listViewActiveDungeon.Columns)
         {
             column.Width = -2;
         }
     }
 }
 private void PopulateMasteryConditionListView(EventListBattles dungeon)
 {
     this.listViewMasteryCondition.Items.Clear();
     if (dungeon == null)
     {
         return;
     }
     foreach (DataDungeonCaptures capture in dungeon.UserDungeon.Captures)
     {
         foreach (DataDungeonSpScore dataDungeonSpScore in capture.SpScore)
         {
             string str1 = (string)null;
             foreach (DataBattle battle in dungeon.Battles)
             {
                 if ((int)battle.Id == (int)dataDungeonSpScore.BattleID)
                 {
                     str1 = battle.Name;
                     break;
                 }
             }
             string str2 = new MedalConditionParser(dataDungeonSpScore.Title.ToString()).translate();
             this.listViewMasteryCondition.Items.Add(new ListViewItem(new string[3]
             {
                 str1,
                 dataDungeonSpScore.Title,
                 str2
             }));
         }
     }
     foreach (ColumnHeader column in this.listViewMasteryCondition.Columns)
     {
         column.Width = -2;
     }
 }
Пример #4
0
 internal void RaiseListBattles(EventListBattles battles)
 {
     if (OnListBattles != null)
     {
         OnListBattles(battles);
     }
 }
Пример #5
0
 internal void RaiseListBattles(EventListBattles battles)
 {
     if (this.OnListBattles == null)
     {
         return;
     }
     this.OnListBattles(battles);
 }
Пример #6
0
 void FFRKProxy_OnListBattles(EventListBattles battles)
 {
     BeginPopulateAllDropsListView(battles);
     this.BeginInvoke((Action)(() =>
     {
         PopulateActiveDungeonListView(battles);
         BeginPopulateAllDropsListView(battles);
     }));
 }
Пример #7
0
 void BeginPopulateAllDropsListView(EventListBattles dungeon)
 {
     if (dungeon != null)
     {
         DbOpFilterDrops op = new DbOpFilterDrops(FFRKProxy.Instance.Database);
         op.Dungeons.AddValue(dungeon.DungeonSession.DungeonId);
         op.OnRequestComplete += RequestDungeonDrops_OnRequestComplete;
         FFRKProxy.Instance.Database.BeginExecuteRequest(op);
     }
 }
 private void FFRKProxy_OnListBattles(EventListBattles battles)
 {
     this.BeginPopulateAllDropsListView(battles);
     this.BeginInvoke((Action)(() =>
     {
         this.PopulateActiveDungeonListView(battles);
         this.PopulateMasteryConditionListView(battles);
         this.BeginPopulateAllDropsListView(battles);
     }));
 }
 private void BeginPopulateAllDropsListView(EventListBattles dungeon)
 {
     if (dungeon != null)
     {
     }
     else
     {
         this.listViewAllDrops.VirtualListSize = 0;
         this.mAllItems.Clear();
         this.mFilteredItems.Collection.Clear();
     }
 }
Пример #10
0
 void BeginPopulateAllDropsListView(EventListBattles dungeon)
 {
     if (dungeon != null)
     {
         DbOpFilterDrops op = new DbOpFilterDrops(FFRKProxy.Instance.Database);
         op.Dungeons.AddValue(dungeon.DungeonSession.DungeonId);
         op.OnRequestComplete += RequestDungeonDrops_OnRequestComplete;
         FFRKProxy.Instance.Database.BeginExecuteRequest(op);
     }
     else
     {
         listViewAllDrops.VirtualListSize = 0;
         mAllItems.Clear();
         mFilteredItems.Collection.Clear();
     }
 }
Пример #11
0
        private static StringBuilder GetMedalConditions(EventListBattles activeDungeon, int battleId)
        {
            var results = new StringBuilder();

            foreach (var capture in activeDungeon.UserDungeon.Captures)
            {
                foreach (var dataDungeonSpScore in capture.SpScore)
                {
                    if ((int)battleId == (int)dataDungeonSpScore.BattleID)
                    {
                        results.Append(string.Format("{0}. ",
                                                     new MedalConditionParser(dataDungeonSpScore.Title).translate(false)));
                    }
                }
            }
            return(results);
        }
Пример #12
0
        public override void Handle(Session Session)
        {
            string ResponseJson = Session.GetResponseBodyAsString();

            EventListBattles result = JsonConvert.DeserializeObject <EventListBattles>(ResponseJson);

            FFRKProxy.Instance.GameState.ActiveDungeon = result;

            lock (FFRKProxy.Instance.Cache.SyncRoot)
            {
                result.Battles.Sort((x, y) => x.Id.CompareTo(y.Id));
                ushort stam_to_reach = 0;
                for (int i = 0; i < result.Battles.Count; ++i)
                {
                    DataBattle            battle = result.Battles[i];
                    DataCache.Battles.Key key    = new DataCache.Battles.Key {
                        BattleId = battle.Id
                    };
                    DataCache.Battles.Data data = null;
                    if (!FFRKProxy.Instance.Cache.Battles.TryGetValue(key, out data))
                    {
                        data = new DataCache.Battles.Data
                        {
                            DungeonId      = battle.DungeonId,
                            HistoSamples   = 1,
                            Name           = battle.Name,
                            Repeatable     = (i < result.Battles.Count - 1),
                            Samples        = 1,
                            Stamina        = battle.Stamina,
                            StaminaToReach = stam_to_reach
                        };

                        FFRKProxy.Instance.Cache.Battles.Update(key, data);
                    }

                    stam_to_reach += battle.Stamina;
                }
            }
            FFRKProxy.Instance.Database.BeginExecuteRequest(new DbOpRecordBattleList(result));
            FFRKProxy.Instance.RaiseListBattles(result);
        }
Пример #13
0
        private void PopulateMasteryConditionListView(EventListBattles dungeon)
        {
            listViewMasteryCondition.Items.Clear();
            //PopulateActiveBattleListView(null);
            if (dungeon == null)
            {
                //groupBoxDungeon.Text = "(No Active Dungeon)";
                return;
            }
            else
            {
                //groupBoxDungeon.Text = dungeon.DungeonSession.Name;
                foreach (DataDungeonCaptures capture in dungeon.UserDungeon.Captures)
                {
                    foreach (DataDungeonSpScore spscore in capture.SpScore)
                    {
                        string battlename = null;
                        foreach (DataBattle battle in dungeon.Battles)
                        {
                            if (battle.Id == spscore.BattleID)
                            {
                                battlename = battle.Name;
                                break;
                            }
                        }
                        string[] row =
                        {
                            battlename,
                            spscore.Title
                        };
                        listViewMasteryCondition.Items.Add(new ListViewItem(row));
                    }
                }

                foreach (ColumnHeader column in listViewMasteryCondition.Columns)
                {
                    column.Width = -2;
                }
            }
        }
Пример #14
0
        public override void Handle(Session Session)
        {
            EventListBattles battles = JsonConvert.DeserializeObject <EventListBattles>(Session.GetResponseBodyAsString());

            FFRKProxy.Instance.GameState.ActiveDungeon = battles;
            lock (FFRKProxy.Instance.Cache.SyncRoot)
            {
                battles.Battles.Sort((Comparison <DataBattle>)((x, y) => x.Id.CompareTo(y.Id)));
                ushort num = 0;
                for (int index = 0; index < battles.Battles.Count; ++index)
                {
                    DataBattle battle = battles.Battles[index];
                    Key        key    = new Key()
                    {
                        BattleId = battle.Id
                    };
                    Data v = (Data)null;
                    if (!FFRKProxy.Instance.Cache.Battles.TryGetValue(key, out v))
                    {
                        v = new Data()
                        {
                            DungeonId      = battle.DungeonId,
                            HistoSamples   = 1U,
                            Name           = battle.Name,
                            Repeatable     = index < battles.Battles.Count - 1,
                            Samples        = 1U,
                            Stamina        = battle.Stamina,
                            StaminaToReach = num
                        };
                        FFRKProxy.Instance.Cache.Battles.Update(key, v);
                    }
                    num += battle.Stamina;
                }
            }
            FFRKProxy.Instance.RaiseListBattles(battles);
        }
Пример #15
0
 public DbOpRecordBattleList(EventListBattles battles) => this.mBattles = battles;
 private void UpdateAllDropsForLastBattle(EventBattleInitiated battle)
 {
     if (battle == null)
     {
         this.listViewAllDrops.VirtualListSize = 0;
         this.mAllItems.Clear();
         this.mFilteredItems.Collection.Clear();
     }
     else
     {
         foreach (BasicItemDropStats basicItemDropStats in this.mAllItems.Where <BasicItemDropStats>((Func <BasicItemDropStats, bool>)(x => (int)x.BattleId == (int)battle.Battle.BattleId)))
         {
             ++basicItemDropStats.TimesRun;
             ++basicItemDropStats.TimesRunWithHistogram;
         }
         lock (FFRKProxy.Instance.Cache.SyncRoot)
         {
             foreach (DropEvent drop1 in battle.Battle.Drops)
             {
                 DropEvent drop = drop1;
                 if (drop.ItemType != DataEnemyDropItem.DropItemType.Gold && drop.ItemType != DataEnemyDropItem.DropItemType.Materia && drop.ItemType != DataEnemyDropItem.DropItemType.Potion)
                 {
                     BasicItemDropStats basicItemDropStats = this.mAllItems.Find((Predicate <BasicItemDropStats>)(x => (int)x.BattleId == (int)battle.Battle.BattleId && (int)x.ItemId == (int)drop.ItemId));
                     if (basicItemDropStats != null)
                     {
                         ++basicItemDropStats.TotalDrops;
                     }
                     else
                     {
                         EventListBattles activeDungeon = FFRKProxy.Instance.GameState.ActiveDungeon;
                         if (activeDungeon != null)
                         {
                             DataBattle dataBattle = activeDungeon.Battles.Find(x => (int)x.Id == (int)battle.Battle.BattleId);
                             if (dataBattle != null)
                             {
                                 uint   num1 = 1;
                                 uint   num2 = 1;
                                 string name = drop.ItemId.ToString();
                                 FFRKInspector.DataCache.Items.Data data1;
                                 if (FFRKProxy.Instance.Cache.Items.TryGetValue(new FFRKInspector.DataCache.Items.Key()
                                 {
                                     ItemId = drop.ItemId
                                 }, out data1))
                                 {
                                     name = data1.Name;
                                 }
                                 FFRKInspector.DataCache.Battles.Data data2;
                                 if (FFRKProxy.Instance.Cache.Battles.TryGetValue(new FFRKInspector.DataCache.Battles.Key()
                                 {
                                     BattleId = battle.Battle.BattleId
                                 }, out data2))
                                 {
                                     num1 = data2.Samples;
                                     num2 = data2.HistoSamples;
                                 }
                                 this.mAllItems.Add(new BasicItemDropStats()
                                 {
                                     BattleId      = battle.Battle.BattleId,
                                     BattleName    = dataBattle.Name,
                                     BattleStamina = dataBattle.Stamina,
                                     ItemId        = drop.ItemId,
                                     ItemName      = name,
                                     TimesRun      = num1,
                                     TotalDrops    = 1U
                                 });
                             }
                         }
                     }
                 }
             }
         }
         this.RebuildFilteredDropListAndInvalidate();
     }
 }
 private void FFRKProxy_OnListBattles(EventListBattles battles)
 {
 }
Пример #18
0
 public DbOpRecordBattleList(EventListBattles battles)
 {
     mBattles = battles;
 }
Пример #19
0
        void UpdateAllDropsForLastBattle(EventBattleInitiated battle)
        {
            if (battle == null)
            {
                listViewAllDrops.VirtualListSize = 0;
                mAllItems.Clear();
                mFilteredItems.Collection.Clear();
                return;
            }

            foreach (BasicItemDropStats stats in mAllItems.Where(x => x.BattleId == battle.Battle.BattleId))
            {
                // Update the times_run field of every item that matches the last battle.  If we don't do
                // this here in a separate loop, it will only happen for items that actually dropped in
                // the following loop.
                stats.TimesRun++;
                stats.TimesRunWithHistogram++;
            }

            lock (FFRKProxy.Instance.Cache.SyncRoot)
            {
                foreach (DropEvent drop in battle.Battle.Drops)
                {
                    if (drop.ItemType == DataEnemyDropItem.DropItemType.Gold)
                    {
                        continue;
                    }

                    if (drop.ItemType == DataEnemyDropItem.DropItemType.Materia)
                    {
                        continue;
                    }

                    if (drop.ItemType == DataEnemyDropItem.DropItemType.Potion)
                    {
                        continue;
                    }

                    BasicItemDropStats match = mAllItems.Find(x => (x.BattleId == battle.Battle.BattleId) &&
                                                              (x.ItemId == drop.ItemId));
                    if (match != null)
                    {
                        ++match.TotalDrops;
                        continue;
                    }

                    EventListBattles this_battle_list = FFRKProxy.Instance.GameState.ActiveDungeon;
                    if (this_battle_list == null)
                    {
                        continue;
                    }

                    DataBattle this_battle = this_battle_list.Battles.Find(x => x.Id == battle.Battle.BattleId);
                    if (this_battle == null)
                    {
                        continue;
                    }

                    uint   times_run       = 1;
                    uint   histo_times_run = 1;
                    string item_name       = drop.ItemId.ToString();
                    DataCache.Items.Data   item_data;
                    DataCache.Battles.Data battle_data;

                    if (FFRKProxy.Instance.Cache.Items.TryGetValue(new DataCache.Items.Key {
                        ItemId = drop.ItemId
                    }, out item_data))
                    {
                        item_name = item_data.Name;
                    }
                    if (FFRKProxy.Instance.Cache.Battles.TryGetValue(new DataCache.Battles.Key {
                        BattleId = battle.Battle.BattleId
                    }, out battle_data))
                    {
                        // Get the times_run from the cache, and add 1 to it.
                        times_run       = battle_data.Samples;
                        histo_times_run = battle_data.HistoSamples;
                    }

                    mAllItems.Add(
                        new BasicItemDropStats
                    {
                        BattleId      = battle.Battle.BattleId,
                        BattleName    = this_battle.Name,
                        BattleStamina = this_battle.Stamina,
                        ItemId        = drop.ItemId,
                        ItemName      = item_name,
                        TimesRun      = times_run,
                        TotalDrops    = 1,
                    });
                }
            }
            RebuildFilteredDropListAndInvalidate();
        }