/// <summary>
 /// Each ability will have a modifier. The modifier can be calculated using this formula:
 /// (ability/2) -5 [round result down]
 /// The modifier is the number you add to or subtract from the die roll when your character tries to do something related to that ability.
 /// A positive modifier is called a bonus, and a negative modifier is called a penalty.
 /// </summary>
 /// <param name="ability"></param>
 /// <returns></returns>
 public int GetAbilityModifier(AbilityEnum ability)
 {
     // TODO: take into account also temporary effects
     return(this._character.Effects.ApplyEffectsToAbilityBaseModifier(ability, GlobalOperators.Round((this._scoreArray[(int)ability] ?? 0) / 2m - 5m)));
 }
 /// <summary>
 /// Each ability will have a modifier. The modifier can be calculated using this formula:
 /// (ability/2) -5 [round result down]
 /// The modifier is the number you add to or subtract from the die roll when your character tries to do something related to that ability.
 /// A positive modifier is called a bonus, and a negative modifier is called a penalty.
 /// </summary>
 /// <param name="ability"></param>
 /// <returns></returns>
 /// <remarks>CORE modifier does not take into account temporary modifiers, it's usefull for character advancement routines.</remarks>
 public int GetCoreAbilityModifier(AbilityEnum ability)
 {
     // even cybernetics only give effects, though "permanent")
     return(GlobalOperators.Round((this._scoreArray[(int)ability] ?? 0) / 2m - 5m));
 }