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; } }
internal void RaiseListBattles(EventListBattles battles) { if (OnListBattles != null) { OnListBattles(battles); } }
internal void RaiseListBattles(EventListBattles battles) { if (this.OnListBattles == null) { return; } this.OnListBattles(battles); }
void FFRKProxy_OnListBattles(EventListBattles battles) { BeginPopulateAllDropsListView(battles); this.BeginInvoke((Action)(() => { PopulateActiveDungeonListView(battles); BeginPopulateAllDropsListView(battles); })); }
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(); } }
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(); } }
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); }
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); }
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; } } }
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); }
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) { }
public DbOpRecordBattleList(EventListBattles battles) { mBattles = battles; }
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(); }