5 private readonly Identifier skillIdentifier;
7 private readonly
bool ignoreAbilitySkillGain,
13 ignoreAbilitySkillGain = abilityElement.
GetAttributeBool(
"ignoreabilityskillgain",
true);
15 if (skillIdentifier.IsEmpty)
17 DebugConsole.ThrowError($
"Error in talent {CharacterTalent.DebugIdentifier}: skill identifier not defined.",
24 if (abilityObject is AbilitySkillGain abilitySkillGain)
26 if (ignoreAbilitySkillGain && abilitySkillGain.GainedFromAbility) {
return; }
27 Identifier identifier = skillIdentifier ==
"inherit" ? abilitySkillGain.SkillIdentifier : skillIdentifier;
32 if (otherCharacter ==
Character) {
continue; }
override void ApplyEffect(AbilityObject abilityObject)
CharacterAbilityGainSimultaneousSkill(CharacterAbilityGroup characterAbilityGroup, ContentXElement abilityElement)
void LogAbilityObjectMismatch()
static IEnumerable< Character > GetFriendlyCrew(Character character)
void IncreaseSkillLevel(Identifier skillIdentifier, float increase, bool gainedFromAbility=false, bool forceNotification=false)
Increase the skill by a specific amount. Talents may affect the actual, final skill increase.
ContentPackage? ContentPackage
bool GetAttributeBool(string key, bool def)
Identifier GetAttributeIdentifier(string key, string def)