Exemplo n.º 1
0
 public SkillLevelDefinition(
     double?damageEffectiveness, double?damageMultiplier, double?criticalStrikeChance,
     int?manaCost, double?manaMultiplier, int?manaCostOverride, int?cooldown,
     int requiredLevel, int requiredDexterity, int requiredIntelligence, int requiredStrength,
     IReadOnlyList <UntranslatedStat> qualityStats, IReadOnlyList <UntranslatedStat> stats,
     IReadOnlyList <IReadOnlyList <UntranslatedStat> > additionalStatsPerPart,
     IReadOnlyList <BuffStat> qualityBuffStats, IReadOnlyList <BuffStat> buffStats,
     IReadOnlyList <UntranslatedStat> qualityPassiveStats, IReadOnlyList <UntranslatedStat> passiveStats,
     SkillTooltipDefinition tooltip)
 {
     DamageEffectiveness  = damageEffectiveness;
     DamageMultiplier     = damageMultiplier;
     CriticalStrikeChance = criticalStrikeChance;
     ManaCost             = manaCost;
     ManaMultiplier       = manaMultiplier;
     ManaCostOverride     = manaCostOverride;
     Cooldown             = cooldown;
     Requirements         = new Requirements(requiredLevel, requiredDexterity, requiredIntelligence, requiredStrength);
     QualityStats         = qualityStats;
     Stats = stats;
     AdditionalStatsPerPart = additionalStatsPerPart;
     QualityBuffStats       = qualityBuffStats;
     BuffStats           = buffStats;
     QualityPassiveStats = qualityPassiveStats;
     PassiveStats        = passiveStats;
     Tooltip             = tooltip;
 }
Exemplo n.º 2
0
 public SkillItem(SkillTooltipDefinition tooltipDefinition, int level, int?gemLevel, int quality)
 {
     TypeLine     = tooltipDefinition.Name;
     Properties   = GetProperties(tooltipDefinition, level, gemLevel, quality).ToList();
     Requirements = tooltipDefinition.Requirements.Select(ConvertTranslatedStat).ToList();
     ImplicitMods = tooltipDefinition.QualityStats
                    .Select(s => new TranslatedStat(s.FormatText, s.Values.Select(d => d * quality).ToArray()))
                    .Select(ConvertTranslatedStat).ToList();
     ExplicitMods = tooltipDefinition.Stats.Select(ConvertTranslatedStat).ToList();
 }
Exemplo n.º 3
0
 public static SkillLevelDefinition CreateLevelDefinition(
     double?damageEffectiveness = null, double?damageMultiplier = null, double?criticalStrikeChance = null,
     int?manaCost      = null, double?manaMultiplier = null, int?manaCostOverride  = null, int?cooldown      = null,
     int requiredLevel = 0, int requiredDexterity    = 0, int requiredIntelligence = 0, int requiredStrength = 0,
     IReadOnlyList <UntranslatedStat> qualityStats = null, IReadOnlyList <UntranslatedStat> stats = null,
     IReadOnlyList <IReadOnlyList <UntranslatedStat> > additionalStatsPerPart = null,
     IReadOnlyList <BuffStat> qualityBuffStats            = null, IReadOnlyList <BuffStat> buffStats = null,
     IReadOnlyList <UntranslatedStat> qualityPassiveStats = null,
     IReadOnlyList <UntranslatedStat> passiveStats        = null,
     SkillTooltipDefinition tooltip = null)
 => new SkillLevelDefinition(damageEffectiveness, damageMultiplier, criticalStrikeChance, manaCost,
                             manaMultiplier, manaCostOverride, cooldown, requiredLevel, requiredDexterity, requiredIntelligence,
                             requiredStrength, qualityStats ?? new UntranslatedStat[0], stats ?? new UntranslatedStat[0],
                             additionalStatsPerPart ?? new[] { new UntranslatedStat[0] }, qualityBuffStats ?? new BuffStat[0],
                             buffStats ?? new BuffStat[0], qualityPassiveStats ?? new UntranslatedStat[0],
                             passiveStats ?? new UntranslatedStat[0], tooltip ?? null);
Exemplo n.º 4
0
        private static IEnumerable <ItemMod> GetProperties(SkillTooltipDefinition tooltipDefinition, int level, int?gemLevel, int quality)
        {
            foreach (var stat in tooltipDefinition.Properties)
            {
                if (gemLevel != null && level != gemLevel && stat.FormatText.StartsWith("Level: {0}"))
                {
                    yield return(new ItemMod("Level: # (#+#)", true,
                                             new[] { level, gemLevel.Value, (float)(level - gemLevel) },
                                             new[] { ValueColoring.LocallyAffected, ValueColoring.White, ValueColoring.LocallyAffected }));
                }
                else
                {
                    yield return(ConvertTranslatedStat(stat));
                }
            }

            if (quality > 0)
            {
                yield return(new ItemMod("Quality: +#%", true, new[] { (float)quality }, new[] { ValueColoring.LocallyAffected }));
            }
        }