Skip to main content

AttributeData

class SoftKitty.AttributeData

AttributeData represents the runtime value of an attribute during gameplay. It supports numeric and string values, callbacks, upgrades, and locking.


Callbacks​

public delegate void AttributeChangeEvent(string _uid, float _value, Entity _dealer);​

Callback delegate invoked when the attribute value changes.

Example

private Entity _player;
void Start(){
_player = GameManager.GetPlayer();
_player.RegisterAttributeChangeCallback(OnAttributeChangeEvent);
}

public void OnAttributeChangeEvent(string _uid, float _value, `[Entity]` _dealer){
if(_uid == "hp"){
mHealthBar.update(_value);
}
}

void OnDestroy(){
_player.UnRegisterAttributeChangeCallback(OnAttributeChangeEvent);
}


Properties​

`string uid​

The UID linking this runtime data to its attribute definition.


int id​

The ID linking this runtime data to its attribute definition.


public Attribute setting​

Retrieve the Attribute settings of this data.


string stringValue​

The string value of this attribute.


float floatValue​

The numeric value of this attribute.


public bool locked​

Whether this attribute is Locked, locked attribute is not valid and invisible.


public int randomChange​

Random chance to unlock this attribute. (For rogue-like game)


public bool isFixed​

Whether this attribute has fixed value.


public float minValue​

The minimal value of this attribute if this attribute has random value.


public float maxValue​

The maximum value of this attribute if this attribute has random value.


Methods​

public void Init()​

For rogue-like game, call this method to decide whether this attribute should be locked and generate a random value for it.


void RegisterCallback(AttributeChangeEvent _callback)​

Registers a callback triggered when the attribute value changes.


bool isNumber()​

Returns true if this attribute is numeric.


bool isString()​

Returns true if this attribute stores a string value.


void SetLock(bool _lock)​

Locks or unlocks this attribute. Locked attributes are invalid and hidden.


float GetFloat(int _upgradeLevel = 0)​

Returns the float value, optionally including upgrade scaling.


int GetInt(int _upgradeLevel = 0)​

Returns the integer value, optionally including upgrade scaling.


string GetString()​

Returns the string value of this attribute.


void SetValue(float _value, Entity _dealer = null)​

Overrides the attribute value using a float.


void SetValue(int _value, Entity _dealer = null)​

Overrides the attribute value using an integer.


void SetValue(string _value)​

Overrides the attribute value using a string.


float AddValue(float _value, Entity _dealer = null)​

Adds a float value and returns the result.


int AddValue(int _value, Entity _dealer = null)​

Adds an integer value and returns the result.


float AddValueClamp(float _value, float _min, float _max, Entity _dealer = null)​

Adds a float value, clamps it, and returns the result.


int AddValueClamp(int _value, int _min, int _max, Entity _dealer = null)​

Adds an integer value, clamps it, and returns the result.