Client LuaCsForBarotrauma
CharacterAbilityModifyValue.cs
1 namespace Barotrauma.Abilities
2 {
4  {
5  private readonly float addedValue;
6  private readonly float multiplyValue;
7 
8  public CharacterAbilityModifyValue(CharacterAbilityGroup characterAbilityGroup, ContentXElement abilityElement) : base(characterAbilityGroup, abilityElement)
9  {
10  addedValue = abilityElement.GetAttributeFloat("addedvalue", 0f);
11  multiplyValue = abilityElement.GetAttributeFloat("multiplyvalue", 1f);
12  if (MathUtils.NearlyEqual(addedValue, 0.0f) && MathUtils.NearlyEqual(multiplyValue, 1.0f))
13  {
14  DebugConsole.ThrowError($"Error in talent {CharacterTalent.DebugIdentifier}, {nameof(CharacterAbilityModifyValue)} - added value is 0 and multiplier is 1, the ability will do nothing.",
15  contentPackage: abilityElement.ContentPackage);
16  }
17  }
18 
19  protected override void ApplyEffect(AbilityObject abilityObject)
20  {
21  if (abilityObject is IAbilityValue abilityValue)
22  {
23  abilityValue.Value += addedValue;
24  abilityValue.Value *= multiplyValue;
25  }
26  }
27  }
28 }
override void ApplyEffect(AbilityObject abilityObject)
CharacterAbilityModifyValue(CharacterAbilityGroup characterAbilityGroup, ContentXElement abilityElement)
float GetAttributeFloat(string key, float def)
ContentPackage? ContentPackage