31 lines
1.1 KiB
C#
31 lines
1.1 KiB
C#
namespace Barotrauma.Abilities
|
|
{
|
|
class CharacterAbilityModifyStat : CharacterAbility
|
|
{
|
|
private readonly StatTypes statType;
|
|
private readonly float value;
|
|
bool lastState;
|
|
public override bool AllowClientSimulation => true;
|
|
|
|
public CharacterAbilityModifyStat(CharacterAbilityGroup characterAbilityGroup, ContentXElement abilityElement) : base(characterAbilityGroup, abilityElement)
|
|
{
|
|
statType = CharacterAbilityGroup.ParseStatType(abilityElement.GetAttributeString("stattype", ""), CharacterTalent.DebugIdentifier);
|
|
value = abilityElement.GetAttributeFloat("value", 0f);
|
|
}
|
|
|
|
public override void InitializeAbility(bool addingFirstTime)
|
|
{
|
|
VerifyState(conditionsMatched: true, timeSinceLastUpdate: 0.0f);
|
|
}
|
|
|
|
protected override void VerifyState(bool conditionsMatched, float timeSinceLastUpdate)
|
|
{
|
|
if (conditionsMatched != lastState)
|
|
{
|
|
Character.ChangeStat(statType, conditionsMatched ? value : -value);
|
|
lastState = conditionsMatched;
|
|
}
|
|
}
|
|
}
|
|
}
|