private static SkillModifiedValue CreateSmv(float startValue, ModificationStrategy strategy, Type skillType, LocString benefitsDescription) { SkillModifiedValue smv = new SkillModifiedValue(startValue, strategy, skillType, benefitsDescription); SkillModifiedValueManager.AddSkillBenefit(Localizer.Do("You"), smv); return(smv); }
public static ModificationStrategy Inverted(this ModificationStrategy x) { if (x is MultiplicativeStrategy) { List <float> newfactorslist = new List <float>(); foreach (float factor in (x as MultiplicativeStrategy).Factors) { if (factor != 0) { newfactorslist.Add(1 / factor); } } return(new MultiplicativeStrategy(newfactorslist.ToArray())); } if (x is AdditiveStrategy) { List <float> subtractions = new List <float>(); foreach (float addition in (x as AdditiveStrategy).Additions) { subtractions.Add(-addition); } return(new AdditiveStrategy(subtractions.ToArray())); } return(x); }
protected new static SkillModifiedValue CreateSkillModifiedValue(float startValue, ModificationStrategy strategy, Type skillType, Type beneficiary, LocString beneficiaryText, LocString benefitText, Type modifierType) { SkillModifiedValue value = new SkillModifiedValue(startValue, strategy, skillType, benefitText, modifierType); SkillModifiedValueManager.AddBenefitForObject(beneficiary, beneficiaryText, value); SkillModifiedValueManager.AddSkillBenefit(beneficiary, beneficiaryText, value); return(value); }