Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }