public static string GetEffectText(MagicItemEffect effect, MagicItemEffectDefinition.ValueDef valuesOverride) { return(GetEffectText(effect, ItemRarity.Legendary, false, null, valuesOverride)); }
public static MagicItemEffect RollEffect(MagicItemEffectDefinition effectDef, ItemRarity itemRarity, MagicItemEffectDefinition.ValueDef valuesOverride = null) { float value = 0; var valuesDef = valuesOverride ?? effectDef.GetValuesForRarity(itemRarity); if (valuesDef != null) { value = valuesDef.MinValue; if (valuesDef.Increment != 0) { EpicLoot.Log($"RollEffect: {effectDef.Type} {itemRarity} value={value} (min={valuesDef.MinValue} max={valuesDef.MaxValue})"); var incrementCount = (int)((valuesDef.MaxValue - valuesDef.MinValue) / valuesDef.Increment); value = valuesDef.MinValue + (Random.Range(0, incrementCount + 1) * valuesDef.Increment); } } return(new MagicItemEffect(effectDef.Type, value)); }
public static string GetEffectText(MagicItemEffect effect, ItemRarity rarity, bool showRange, string legendaryID, MagicItemEffectDefinition.ValueDef valuesOverride) { var effectDef = MagicItemEffectDefinitions.Get(effect.EffectType); var result = GetEffectText(effectDef, effect.EffectValue); var values = valuesOverride ?? (string.IsNullOrEmpty(legendaryID) ? effectDef.GetValuesForRarity(rarity) : UniqueLegendaryHelper.GetLegendaryEffectValues(legendaryID, effect.EffectType)); if (showRange && values != null) { if (!Mathf.Approximately(values.MinValue, values.MaxValue)) { result += $" [{values.MinValue}-{values.MaxValue}]"; } } return(result); }