public Bonus <T> Multiply(BonusDescription <T> bonus) { bonus.BonusType = BonusType.Multiplicative; bonusDescriptions.Add(bonus); return(this); }
private Bonus <T> Append(BonusDescription <T> bonus) { bonus.BonusType = BonusType.Additive; bonusDescriptions.Add(bonus); return(this); }
public void OnLoaded(Dictionary <string, object> values) { if (Bonuses.Length < 1) { return; } foreach (var bonus in Bonuses) { var split = bonus.Split(new[] { ':' }, 2); var bonusKey = split[0].Trim(); if (!OverrideDescriptionsFeature.Resources.TryGetValue(bonusKey, out var settings)) { Control.Logger.Error.Log($"Could not find bonus description \"{bonusKey}\" used by {Def.Description.Id}"); continue; } var args = split.Length >= 2 ? split[1].Split(',').Select(c => c.Trim()).ToArray() : new string[0]; var description = new BonusDescription(settings, args); descriptions.Add(description); } { var count = 0; foreach (var description in descriptions.Select(x => x.Short).Where(x => x != null).Take(2)) { if (count == 0) { Def.BonusValueA = description; count++; } else if (count == 1) { Def.BonusValueB = description; } } } AddTemplatedExtendedDetail( ExtendedDetails.GetOrCreate(Def), descriptions.Select(x => x.Full), OverrideDescriptionsFeature.settings.BonusDescriptionsElementTemplate, OverrideDescriptionsFeature.settings.BonusDescriptionsDescriptionTemplate, OverrideDescriptionsFeature.settings.DescriptionIdentifier ); }