private void FFRKProxy_OnBattleEngaged(EventBattleInitiated battle) => this.BeginInvoke((Action)(() => { this.BeginPopulateAllDropsListView(battle); this.PopulateEnemyInfoListView(battle); this.PopulateDropInfoListView(battle); this.PopulateAbilityJsonTextBox(battle); }));
private void PopulateEnemyInfoListView(EventBattleInitiated battle) { this.listViewEnemyInfo.Items.Clear(); if (battle == null) { return; } this.listViewEnemyInfo.View = View.Details; if (battle.Battle.Enemies.ToList <BasicEnemyInfo>().Count == 0) { return; } lock (FFRKProxy.Instance.Cache.SyncRoot) { foreach (BasicEnemyInfo enemy in battle.Battle.Enemies) { List <string> list = new List <string>() { "Poison", "Silence", "Paralyze", "Confuse", "Slow", "Stop", "Blind", "Sleep", "Petrify", "Doom", "Instant_KO", "Beserk", "Stun" }.Except <string>((IEnumerable <string>)enemy.EnemyStatusImmunity).ToList <string>(); this.listViewEnemyInfo.Items.Add(new ListViewItem(new string[18] { enemy.EnemyName, enemy.EnemyMaxHp.ToString("N0"), enemy.EnemyAtk.ToString("N0"), enemy.EnemyDef.ToString("N0"), enemy.EnemyMag.ToString("N0"), enemy.EnemyRes.ToString("N0"), enemy.EnemyMnd.ToString("N0"), enemy.EnemySpd.ToString("N0"), enemy.EnemyFireDef, enemy.EnemyIceDef, enemy.EnemyLitDef, enemy.EnemyEarthDef, enemy.EnemyWindDef, enemy.EnemyWaterDef, enemy.EnemyHolyDef, enemy.EnemyDarkDef, enemy.EnemyBioDef, string.Join(", ", list.ToArray()) })); } } foreach (ColumnHeader column in this.listViewEnemyInfo.Columns) { column.Width = -2; } }
public override void Handle(Session Session) { EventBattleInitiated battle = JsonConvert.DeserializeObject <EventBattleInitiated>(Session.GetResponseBodyAsString()); FFRKProxy.Instance.GameState.ActiveBattle = battle; FFRKProxy.Instance.RaiseBattleInitiated(battle); }
public override void Handle(Session Session) { GameState gameState = FFRKProxy.Instance.GameState; if (gameState.ActiveBattle == null) { return; } EventBattleInitiated activeBattle = gameState.ActiveBattle; gameState.ActiveBattle = (EventBattleInitiated)null; lock (FFRKProxy.Instance.Cache.SyncRoot) { Key key = new Key() { BattleId = activeBattle.Battle.BattleId }; Data data = (Data)null; if (FFRKProxy.Instance.Cache.Battles.TryGetValue(key, out data)) { ++data.Samples; ++data.HistoSamples; } } FFRKProxy.Instance.RaiseBattleComplete(activeBattle); }
void FFRKProxy_OnCompleteBattle(EventBattleInitiated battle) { this.BeginInvoke((Action)(() => { PopulateActiveBattleListView(null); UpdateAllDropsForLastBattle(battle); })); }
internal void RaiseBattleComplete(EventBattleInitiated original_battle) { if (this.OnCompleteBattle == null) { return; } this.OnCompleteBattle(original_battle); }
internal void RaiseBattleInitiated(EventBattleInitiated battle) { if (this.OnBattleEngaged == null) { return; } this.OnBattleEngaged(battle); }
public override void Handle(Session Session) { string ResponseJson = Session.GetResponseBodyAsString(); EventBattleInitiated result = JsonConvert.DeserializeObject <EventBattleInitiated>(ResponseJson); FFRKProxy.Instance.GameState.ActiveBattle = result; FFRKProxy.Instance.RaiseBattleInitiated(result); }
private void PopulateEnemyInfoListView(EventBattleInitiated battle) { listViewEnemyInfo.Items.Clear(); if (battle == null) { return; } else { listViewEnemyInfo.View = View.Details; List <BasicEnemyInfo> enemies = battle.Battle.Enemies.ToList(); if (enemies.Count == 0) { return; } else { lock (FFRKProxy.Instance.Cache.SyncRoot) { foreach (BasicEnemyInfo enemy in battle.Battle.Enemies) { //The below is the "full" list of status effects, however I removed Haste, Shell, Protect, Reflect, and a few other //positive buffs, and also the status effects not yet implemented such as Zombie, Toad, Mini. List <string> AllStatusEffects = new List <String>() { "Poison", "Silence", "Paralyze", "Confuse", "Slow", "Stop", "Blind", "Sleep", "Petrify", "Doom", "Instant_KO", "Beserk", "Sap", "Stun" //,"Haste","Shell","Protect","Regen","Reflect" }; //Calculate difference between above set of status effects and the status immunities of enemy. List <string> EnemyStatusWeakness = AllStatusEffects.Except(enemy.EnemyStatusImmunity).ToList(); string[] row = { enemy.EnemyName, enemy.EnemyMaxHp.ToString("N0"), //string.Join(", ",enemy.EnemyElemWeakness.ToArray()), //"test2", //"test3" string.Join(", ", EnemyStatusWeakness.ToArray()), string.Join(", ", enemy.EnemyElemWeakness.ToArray()), string.Join(", ", enemy.EnemyElemResist.ToArray()), string.Join(", ", enemy.EnemyElemNull.ToArray()), string.Join(", ", enemy.EnemyElemAbsorb.ToArray()) }; listViewEnemyInfo.Items.Add(new ListViewItem(row)); } } foreach (ColumnHeader column in listViewEnemyInfo.Columns) { column.Width = -2; } } } }
void FFRKProxy_OnBattleEngaged(EventBattleInitiated battle) { this.BeginInvoke((Action)(() => { //PopulateActiveBattleListView(battle); BeginPopulateAllDropsListView(battle); PopulateEnemyInfoListView(battle); PopulateDropInfoListView(battle); })); }
void FFRKProxy_OnCompleteBattle(EventBattleInitiated battle) { this.BeginInvoke((Action)(() => { PopulateEnemyInfoListView(null); PopulateDropInfoListView(null); BeginPopulateAllDropsListView(null); //PopulateDropInfoListView(null); //UpdateAllDropsForLastBattle(battle); })); }
private void BeginPopulateAllDropsListView(EventBattleInitiated battle) { if (battle != null) { } else { this.listViewPrevDrops.VirtualListSize = 0; this.mAllPrevItems.Clear(); this.mFilteredPrevItems.Collection.Clear(); } }
void BeginPopulateAllDropsListView(EventBattleInitiated battle) { if (battle != null) { DbOpFilterDrops op = new DbOpFilterDrops(FFRKProxy.Instance.Database); op.Battles.AddValue(battle.Battle.BattleId); op.OnRequestComplete += RequestBattleDrops_OnRequestComplete; FFRKProxy.Instance.Database.BeginExecuteRequest(op); } else { listViewPrevDrops.VirtualListSize = 0; mAllPrevItems.Clear(); mFilteredPrevItems.Collection.Clear(); } }
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_OnCompleteBattle(EventBattleInitiated battle) => this.BeginInvoke((Action)(() => { this.PopulateEnemyInfoListView((EventBattleInitiated)null); this.PopulateDropInfoListView((EventBattleInitiated)null); this.BeginPopulateAllDropsListView((EventBattleInitiated)null); }));
private void PopulateAbilityJsonTextBox(EventBattleInitiated battle) { this.abilityJsonText.Clear(); if (battle == null) { return; } List <DataBuddyInformation> list = battle.Battle.Buddies.ToList <DataBuddyInformation>(); list.AddRange((IEnumerable <DataBuddyInformation>)battle.Battle.Supporters.ToList <DataBuddyInformation>()); if (list.Count == 0) { return; } lock (FFRKProxy.Instance.Cache.SyncRoot) { List <string> stringList = new List <string>(); foreach (DataBuddyInformation buddyInformation in list) { List <DataAbility> abilities = buddyInformation.Abilities; abilities.AddRange((IEnumerable <DataAbility>)buddyInformation.SoulStrikes); foreach (DataAbility dataAbility in abilities) { if (dataAbility.Options.OptionAbilityName != "Attack") { string[] strArray = new string[50]; strArray[0] = (dataAbility.Options.OptionAbilityName += "\t"); strArray[1] = dataAbility.AbilityId.ToString(); strArray[2] = "\t"; strArray[3] = dataAbility.ActionId.ToString(); strArray[4] = "\t"; strArray[5] = dataAbility.CategoryId.ToString(); strArray[6] = "\t"; strArray[7] = dataAbility.ExerciseType.ToString(); strArray[8] = "\t"; strArray[9] = dataAbility.Options.AnimId.ToString(); strArray[10] = "\t"; strArray[11] = dataAbility.Options.ActiveTargetMethod.ToString(); strArray[12] = "\t"; strArray[13] = dataAbility.Options.AliasName.ToString(); strArray[14] = "\t"; strArray[15] = dataAbility.Options.Arg1.ToString(); strArray[16] = "\t"; strArray[17] = dataAbility.Options.Arg2.ToString(); strArray[18] = "\t"; strArray[19] = dataAbility.Options.Arg3.ToString(); strArray[20] = "\t"; strArray[21] = dataAbility.Options.Arg4.ToString(); strArray[22] = "\t"; strArray[23] = dataAbility.Options.Arg5.ToString(); strArray[24] = "\t"; strArray[25] = dataAbility.Options.Arg6.ToString(); strArray[26] = "\t"; strArray[27] = dataAbility.Options.Arg7.ToString(); strArray[28] = "\t"; strArray[29] = dataAbility.Options.Arg8.ToString(); strArray[30] = "\t"; strArray[31] = dataAbility.Options.Arg9.ToString(); strArray[32] = "\t"; strArray[33] = dataAbility.Options.Arg10.ToString(); strArray[34] = "\t"; strArray[35] = dataAbility.Options.CastTime.ToString(); strArray[36] = "\t"; strArray[37] = dataAbility.Options.CounterEnable.ToString(); strArray[38] = "\t"; strArray[39] = dataAbility.Options.StatusFactor.ToString(); strArray[40] = "\t"; strArray[41] = dataAbility.Options.StatusId.ToString(); strArray[42] = "\t"; strArray[43] = dataAbility.Options.TargetDeath.ToString(); strArray[44] = "\t"; strArray[45] = dataAbility.Options.TargetMethod.ToString(); strArray[46] = "\t"; strArray[47] = dataAbility.Options.TargetRange.ToString(); strArray[48] = "\t"; strArray[49] = dataAbility.Options.TargetSegment.ToString(); string str = string.Concat(strArray); stringList.Add(str); } } } this.abilityJsonText.Lines = stringList.ToArray(); } }
private void PopulateDropInfoListView(EventBattleInitiated battle) { this.listViewDropInfo.Items.Clear(); if (battle == null) { return; } this.listViewDropInfo.View = View.Details; if (battle.Battle.Drops.ToList <DropEvent>().Count == 0) { return; } lock (FFRKProxy.Instance.Cache.SyncRoot) { foreach (DropEvent drop in battle.Battle.Drops) { Key key = new Key() { ItemId = drop.ItemId }; Data data = (Data)null; string str1 = drop.ItemType != DataEnemyDropItem.DropItemType.Gold ? (drop.ItemType != DataEnemyDropItem.DropItemType.Materia ? (drop.ItemType != DataEnemyDropItem.DropItemType.Potion ? (!FFRKProxy.Instance.Cache.Items.TryGetValue(key, out data) ? drop.ItemId.ToString() : data.Name) : drop.PotionName) : drop.MateriaName) : string.Format("{0} gold", (object)drop.GoldAmount); if (drop.ItemId > 40000000U && drop.ItemId <= 40000065U) { string str2 = ""; switch (drop.ItemId % 5U) { case 0: str2 += "Major "; break; case 1: str2 += "Minor "; break; case 2: str2 += "Lesser "; break; case 4: str2 += "Greater "; break; } str1 = str2 + Enum.GetName(typeof(SchemaConstants.ItemID), (object)(uint)((int)((drop.ItemId - 1U) / 5U) * 5 + 5)); } else if (drop.ItemId >= 40000066U && drop.ItemId <= 40000078U) { str1 = Enum.GetName(typeof(SchemaConstants.ItemID), (object)drop.ItemId); } else if (drop.ItemId >= 161000001U && drop.ItemId <= 161000104U) { try { str1 = Enum.GetName(typeof(SchemaConstants.MagiciteID), (object)drop.ItemId); } catch (Exception ex) { FiddlerApplication.Log.LogString(ex.ToString()); } } else if (drop.ItemId == 95001014U) { str1 = "Gysahl Greens"; } else if (drop.ItemId == 70000001U) { str1 = "Minor Growth Egg"; } else if (drop.ItemId == 70000002U) { str1 = "Lesser Growth Egg"; } else if (drop.ItemId == 70000003U) { str1 = "Growth Egg"; } else if (drop.ItemId == 70000004U) { str1 = "Greater Growth Egg"; } else if (drop.ItemId == 70000005U) { str1 = "Major Growth Egg"; } string str3 = str1.Replace('_', ' '); if (drop.NumberOfItems > 1U) { str3 += string.Format(" x{0}", (object)drop.NumberOfItems); } this.listViewDropInfo.Items.Add(new ListViewItem(new string[4] { str3, drop.ItemId < 161000057U || drop.ItemId > 161000080U ? drop.Rarity.ToString() : "4", drop.Round.ToString(), drop.EnemyName })); } } foreach (ColumnHeader column in this.listViewDropInfo.Columns) { column.Width = -2; } }
public string GetAbilitySummary(BasicEnemyInfo enemy, BasicEnemyParentInfo myEnemyParent, EventBattleInitiated battle, ComboBox comboBoxEnemySelection, CheckBox checkBoxCastTimes, CheckBox checkBoxEnumerate, CheckBox checkBoxRatesAsFractions, CheckBox checkBoxTranslate) { if (enemy == null || myEnemyParent == null || battle == null) { return(""); } var single = myEnemyParent.Appearances[0] == 1U && comboBoxEnemySelection.Items.Count == 1; uint totalWeight = 0; foreach (var enemyAbility in enemy.EnemyAbilities) { totalWeight += enemyAbility.Weight; } var source = new List <string>(); var enemyAbilityParser = new EnemyAbilityParser(totalWeight, battle, single); var checkCastTimesCheckState = checkBoxCastTimes.CheckState; bool hasVariableCastTime; if (checkCastTimesCheckState.Equals(CheckState.Indeterminate)) { hasVariableCastTime = enemy.EnemyCastTime.Equals("Variable"); } else { checkCastTimesCheckState = checkBoxCastTimes.CheckState; hasVariableCastTime = checkCastTimesCheckState.Equals(CheckState.Checked); } var checkBoxEnumerateCheckState = checkBoxEnumerate.CheckState; bool enumerateForcedActions; if (checkBoxEnumerateCheckState.Equals(CheckState.Indeterminate)) { var num = 0; foreach (var constraint in myEnemyParent.Constraints) { if (constraint.ConstraintType == 1001U && (int)constraint.EnemyStatusId == (int)enemy.EnemyId) { ++num; } } enumerateForcedActions = num >= 10; } else { checkBoxEnumerateCheckState = checkBoxEnumerate.CheckState; enumerateForcedActions = checkBoxEnumerateCheckState.Equals(CheckState.Checked); } var parseOpt = new EnemyAbilityParserOptions { displayFractions = checkBoxRatesAsFractions.Checked, displayCastTimes = hasVariableCastTime, translateAbilityNames = checkBoxTranslate.Checked }; var orderedEnumerable = enemy.getAbilities(myEnemyParent.Constraints).OrderBy(x => { var val2 = int.MaxValue; foreach (var constraint in myEnemyParent.Constraints) { if (constraint.ConstraintType == 1001U && constraint.AbilityTag.Equals(x.Tag)) { var val1 = int.Parse(constraint.ConstraintValue); if (constraint.EnemyStatusId == 0U) { val1 -= 10000; } else if ((int)constraint.EnemyStatusId != (int)enemy.EnemyId) { continue; } val2 = Math.Min(val1, val2); } } return(val2); }).OrderBy(x => x.Weight).OrderBy(x => x.Weight != 0U ? x.UnlockTurn : 0U); if (enumerateForcedActions) { var val1 = 0; foreach (var constraint in myEnemyParent.Constraints) { if (constraint.ConstraintType == 1001U && (int)constraint.EnemyStatusId == (int)enemy.EnemyId) { val1 = Math.Max(val1, int.Parse(constraint.ConstraintValue)); } } for (var enumeratedTurn = 1; enumeratedTurn <= val1; ++enumeratedTurn) { foreach (var constraint1 in myEnemyParent.Constraints) { if (constraint1.ConstraintType == 1001U && (int)constraint1.EnemyStatusId == (int)enemy.EnemyId && int.Parse(constraint1.ConstraintValue) == enumeratedTurn) { foreach (var paramAbility in orderedEnumerable) { if (constraint1.AbilityTag.Equals(paramAbility.Tag)) { var num = 0; var flag3 = true; if (paramAbility.Weight > 0U) { flag3 = false; } foreach (var constraint2 in myEnemyParent.Constraints) { if (flag3 && constraint2.ConstraintType == 1001U && constraint2.AbilityTag.Equals(paramAbility.Tag) && (int)constraint2.EnemyStatusId == (int)enemy.EnemyId && int.Parse(constraint2.ConstraintValue) > enumeratedTurn) { flag3 = false; } if (flag3 && constraint2.ConstraintType >= 1003U && constraint2.ConstraintType <= 1005U && constraint2.AbilityTag.Equals(paramAbility.Tag) && (int)constraint1.EnemyStatusId == (int)enemy.EnemyId) { flag3 = false; } if (flag3 && constraint2.ConstraintType == 1002U && constraint2.AbilityTag.Equals(paramAbility.Tag) && (int)constraint2.EnemyStatusId == (int)enemy.EnemyId) { num = num == 0 ? int.Parse(constraint2.ConstraintValue) : Math.Min(int.Parse(constraint2.ConstraintValue), num); } } if ((num > 0) & flag3) { source.Add(enemyAbilityParser.parseAbility(paramAbility, myEnemyParent.Constraints, enemy, parseOpt, false, enumeratedTurn, num)); } else { source.Add(enemyAbilityParser.parseAbility(paramAbility, myEnemyParent.Constraints, enemy, parseOpt, false, enumeratedTurn)); } } } } } } foreach (var paramAbility in orderedEnumerable) { if (paramAbility.Weight > 0U) { source.Add(enemyAbilityParser.parseAbility(paramAbility, myEnemyParent.Constraints, enemy, parseOpt, false, 0)); } else { var flag3 = false; var flag4 = false; foreach (var constraint in myEnemyParent.Constraints) { if (constraint.AbilityTag.Equals(paramAbility.Tag)) { if ((int)constraint.EnemyStatusId == (int)enemy.EnemyId && constraint.ConstraintType == 1001U) { flag3 = true; } if (constraint.EnemyStatusId == 0U || (int)constraint.EnemyStatusId == (int)enemy.EnemyId && constraint.ConstraintType != 1001U && constraint.ConstraintType != 1002U) { flag4 = true; } } } if (!flag3 | flag4) { source.Add(enemyAbilityParser.parseAbility(paramAbility, myEnemyParent.Constraints, enemy, parseOpt, false, 0)); } } } } else { foreach (var paramAbility in orderedEnumerable) { source.Add(enemyAbilityParser.parseAbility(paramAbility, myEnemyParent.Constraints, enemy, parseOpt)); } } var list = source.OrderBy(x => x[0] != 'T').ThenBy(x => x[0] != 'S').ToList(); foreach (var counter in enemy.EnemyCounters.OrderBy(x => x.Rate)) { list.Add(enemyAbilityParser.parseCounter(counter, parseOpt)); } return(string.Join(" \n", list)); }
private void FFRKProxy_OnCompleteBattle(EventBattleInitiated battle) => this.BeginInvoke((Action)(() => this.UpdateAllDropsForLastBattle(battle)));
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(); }
private void FFRKProxy_OnBattleEngaged(EventBattleInitiated battle) { }
void FFRKProxy_OnBattleEngaged(EventBattleInitiated battle) { this.BeginInvoke((Action)(() => { PopulateActiveBattleListView(battle); })); }
public DbOpRecordBattleEncounter(EventBattleInitiated encounter) => this.mEncounter = encounter;
private void PopulateActiveBattleListView(EventBattleInitiated battle) { listViewActiveBattle.Items.Clear(); if (battle == null) { labelActiveBattleNotice.Visible = true; labelNoDrops.Visible = false; return; } listViewActiveBattle.View = View.Details; List <DropEvent> drops = battle.Battle.Drops.ToList(); labelActiveBattleNotice.Visible = false; if (drops.Count == 0) { labelNoDrops.Visible = true; return; } lock (FFRKProxy.Instance.Cache.SyncRoot) { foreach (DropEvent drop in battle.Battle.Drops) { string Item; DataCache.Items.Key ItemKey = new DataCache.Items.Key { ItemId = drop.ItemId }; DataCache.Items.Data ItemData = null; if (drop.ItemType == DataEnemyDropItem.DropItemType.Gold) { Item = String.Format("{0} gold", drop.GoldAmount); } else if (drop.ItemType == DataEnemyDropItem.DropItemType.Materia) { Item = drop.MateriaName; } else if (drop.ItemType == DataEnemyDropItem.DropItemType.Potion) { Item = drop.PotionName; } else if (FFRKProxy.Instance.Cache.Items.TryGetValue(ItemKey, out ItemData)) { Item = ItemData.Name; } else { Item = drop.ItemId.ToString(); } if (drop.NumberOfItems > 1) { Item += String.Format(" x{0}", drop.NumberOfItems); } string[] row = { Item, drop.Rarity.ToString(), drop.Round.ToString(), drop.EnemyName, "", "" }; listViewActiveBattle.Items.Add(new ListViewItem(row)); } } }