public List <object> GetOptions() { var options = new List <object>(); options.AddRange(Skills); options.AddRange(BuffSkills); foreach (var statMapEx in StatsMap.GetAdditionalStats()) { options.Add(new StatModifier( statMapEx.StatType, StatModifier.OperationType.Add, statMapEx.AdditionalValueAsInt)); } return(options); }
private void UpdateOptionsV2(IRandom random, EnhancementCostSheetV2.Row row, bool isGreatSuccess) { foreach (var statMapEx in StatsMap.GetAdditionalStats()) { var rand = isGreatSuccess ? row.ExtraStatGrowthMax : random.Next(row.ExtraStatGrowthMin, row.ExtraStatGrowthMax + 1); var ratio = rand.NormalizeFromTenThousandths(); var addValue = statMapEx.AdditionalValue * ratio; if (addValue > 0) { addValue = Math.Max(1.0m, addValue); } StatsMap.SetStatAdditionalValue(statMapEx.StatType, statMapEx.AdditionalValue + addValue); } var skills = new List <Skill.Skill>(); skills.AddRange(Skills); skills.AddRange(BuffSkills); foreach (var skill in skills) { var chanceRand = isGreatSuccess ? row.ExtraSkillChanceGrowthMax : random.Next(row.ExtraSkillChanceGrowthMin, row.ExtraSkillChanceGrowthMax + 1); var chanceRatio = chanceRand.NormalizeFromTenThousandths(); var addChance = skill.Chance * chanceRatio; if (addChance > 0) { addChance = Math.Max(1.0m, addChance); } var damageRand = isGreatSuccess ? row.ExtraSkillDamageGrowthMax : random.Next(row.ExtraSkillDamageGrowthMin, row.ExtraSkillDamageGrowthMax + 1); var damageRatio = damageRand.NormalizeFromTenThousandths(); var addPower = skill.Power * damageRatio; if (addPower > 0) { addPower = Math.Max(1.0m, addPower); } skill.Update(skill.Chance + (int)addChance, skill.Power + (int)addPower); } }
private void UpdateOptions() { foreach (var statMapEx in StatsMap.GetAdditionalStats()) { StatsMap.SetStatAdditionalValue( statMapEx.StatType, statMapEx.AdditionalValue * 1.3m); } var skills = new List <Skill.Skill>(); skills.AddRange(Skills); skills.AddRange(BuffSkills); foreach (var skill in skills) { var chance = decimal.ToInt32(skill.Chance * 1.3m); var power = decimal.ToInt32(skill.Power * 1.3m); skill.Update(chance, power); } }
public int GetOptionCount() { return(StatsMap.GetAdditionalStats().Count() + Skills.Count + BuffSkills.Count); }