private static StringBuilder GetMasteryRewards(DataDungeonPrizes prizes, ItemNameGetter itemNameGetter) { var results = new StringBuilder(); if (prizes.MasteryRewards != null) { foreach (var masteryReward in prizes.MasteryRewards) { results.Append(string.Format("* {0} \n", itemNameGetter.GetItemName(masteryReward.Id, masteryReward.Quantity, masteryReward.Name))); } } return(results); }
public StringBuilder GetSummaryInformation(ComboBox comboBoxEnemySelection, CheckBox checkBoxCastTimes, CheckBox checkBoxEnumerate, CheckBox checkBoxRatesAsFractions, CheckBox checkBoxTranslate) { var itemNameGetter = new ItemNameGetter(); var statusVulnerabilityGetter = new StatusVulnerabilityGetter(); var abilitySummaryHelper = new AbilitySummaryHelper(); var summary = new StringBuilder(); if (FFRKProxy.Instance.GameState.ActiveDungeon != null) { var activeDungeon = FFRKProxy.Instance.GameState.ActiveDungeon; var battleId = (int)FFRKProxy.Instance.GameState.ActiveBattle.Battle.BattleId; DataBattle dataBattle = null; foreach (var battle in activeDungeon.Battles) { if (battle.Id == battleId) { dataBattle = battle; } } summary.Append(string.Format("*****\n\n##{0} \n\n", dataBattle.Name)); var medalConditions = GetMedalConditions(activeDungeon, battleId); if (medalConditions.Length > 0) { summary.Append("**Medal Conditions:** " + medalConditions + "\n\n"); } var prizes = activeDungeon.UserDungeon.Prizes; var dungeonPrizes = GetDungeonPrizes(prizes, itemNameGetter); if (dungeonPrizes.Length > 0) { summary.Append(string.Format("**Clear Reward{0}:** \n\n{1}\n", dungeonPrizes.Length != 1 ? "s" : (object)"", dungeonPrizes)); } var masteryRewards = GetMasteryRewards(prizes, itemNameGetter); if (masteryRewards.Length > 0) { summary.Append(string.Format("**Mastery Reward{0}:** \n\n{1}\n", masteryRewards.Length != 1 ? "s" : (object)"", masteryRewards)); } var firstClearRewards = GetFirstClearRewards(prizes, itemNameGetter); if (firstClearRewards.Length > 0) { summary.Append(string.Format("**First Clear Reward{0}:** \n\n{1}\n", firstClearRewards.Length != 1 ? "s" : (object)"", firstClearRewards)); } } var basicEnemyParentInfoList = new List <BasicEnemyParentInfo>(); foreach (var obj in comboBoxEnemySelection.Items) { basicEnemyParentInfoList.Add((BasicEnemyParentInfo)obj); } var hasStatusVulnerabilities = true; var statusVulnerabilities = statusVulnerabilityGetter.GetStatusVulnerabilities(basicEnemyParentInfoList[0].Phases.First().EnemyStatusImmunity); foreach (var basicEnemyParentInfo in basicEnemyParentInfoList) { foreach (var phase in basicEnemyParentInfo.Phases) { if (!statusVulnerabilities.Equals(statusVulnerabilityGetter.GetStatusVulnerabilities(phase.EnemyStatusImmunity))) { hasStatusVulnerabilities = false; } } } AddEnemyStats(basicEnemyParentInfoList, summary, hasStatusVulnerabilities, statusVulnerabilityGetter); AddElementalResitances(summary, basicEnemyParentInfoList); AddBreakEffectiveness(summary, basicEnemyParentInfoList); if (hasStatusVulnerabilities) { summary.Append(string.Format("**Status Vulnerabilities{0}**: {1} \n", basicEnemyParentInfoList.Count == 1 ? "" : (object)" (all)", statusVulnerabilities)); } if (basicEnemyParentInfoList.Count == 1 && basicEnemyParentInfoList[0].Phases.Count() == 1) { summary.Append("\n##Moveset\n\n"); } else { summary.Append("\n##Movesets\n\n"); } var hasVariableCastTimes = true; var enemyCastTime = basicEnemyParentInfoList[0].Phases.First().EnemyCastTime; foreach (var basicEnemyParentInfo in basicEnemyParentInfoList) { foreach (var phase in basicEnemyParentInfo.Phases) { if (phase.EnemyCastTime.Equals("Variable") || !phase.EnemyCastTime.Equals(enemyCastTime)) { hasVariableCastTimes = false; } } } if (hasVariableCastTimes) { var str2 = enemyCastTime.Replace("sec", "seconds"); if (str2.Equals("1 seconds")) { str2 = "1 second"; } summary.Append(string.Format( "All (non-interrupt) enemy abilities in this fight have a cast time of {0}.\n\n", str2)); } AppendBossHealthGatesAndMoveSummary(comboBoxEnemySelection, checkBoxCastTimes, checkBoxEnumerate, checkBoxRatesAsFractions, checkBoxTranslate, basicEnemyParentInfoList, summary, hasVariableCastTimes, abilitySummaryHelper); AppendDataAiArgs(summary, basicEnemyParentInfoList); return(summary); }