Attribute
📊 Attribute class
An attribute can be used as type for a stat, ability, character, etc. This class is used by the Stat class to help define a its strengths and weaknesses.
Namespace:
Esper.Inventool.Stats
Access:public
Type:class
Inherits:InventoolObject
📦 Fields
public
displayName
string
The display name of the attribute.
public
localizedDisplayNameKey
string
The key of the localized display name string.
public
icon
Sprite
An icon that represents the attribute.
public
effectivenesses
List<Effectiveness>
Effectivenesses against attributes.
🔍 Properties
public static
DirectoryPath
(Editor only)
string
The directory of attributes.
🧰 Methods
public
GetLocalizedDisplayName()
string
Gets the localized display name string.
public
GetAttackWeaknesses()
List<Attribute>
Gets attributes this attribute deals decreased damage to.
public
GetAttackStrengths()
List<Attribute>
Gets attributes this attribute deals increased damage to.
public
GetDefenseWeaknesses()
List<Attribute>
Gets attributes that deal increased damage to this attribute.
public
GetDefenseStrengths()
List<Attribute>
Gets attributes that deal decreased damage to this attribute.
public
HasEffectiveness(Attribute attribute)
bool
Checks if an attribute is in the effectiveness list.
public
AddEffectiveness(Attribute attribute, float multiplier)
void
Adds an effectiveness entry.
public
RemoveEffectiveness(Attribute attribute)
void
Removes an effectiveness entry.
public
IsWeakAgainst(Attribute attribute)
bool
Checks if this attribute is weak against another.
public
IsStrongAgainst(Attribute attribute)
bool
Checks if this attribute is strong against another.
public
GetEffectiveness(Attribute attribute)
float
Gets the effectiveness multiplier against another attribute.
public
SetData(Attribute attribute)
void
Sets the data of this attribute from another.
public static
Create()
(Editor only)
Attribute
Creates a new instance of an attribute.
public
UpdateAssetName()
(Editor only)
void
Updates the name of the asset.
public static
GetFullPath(Attribute attribute)
(Editor only)
string
Gets the full path of an attribute asset.
public static
CreateCopy(Attribute original)
Attribute
Creates a copy of another attribute.
➗ Operator overloads
Implicit from int: Returns
Inventool.GetAttribute(id)
.Implicit from string: Returns
Inventool.GetAttribute(name)
.
Creating Attributes
It's not at all recommended to create attributes at runtime, but it is possible. Attribute
's are scriptable objects which cannot be created as assets at runtime for later use.
Attribute attribute = ScriptableObject.CreateInstance<Attribute>();
The attribute IDs must be unique. When creating them from the Attributes tab, unique IDs are set automatically. However, this is not done when creating them at runtime. You'd need to create your own method of ensuring IDs of generated attributes are unique.
Getting Attributes
Attributes created through the Attributes tab can be retrieved at runtime.
Get a Single Attribute
You can get an attribute by its ID, or name with the Inventool.GetAttribute
method.
Attribute myAttribute = Inventool.GetAttribute("Fire");
Get All Attributes
var attributes = Inventool.GetAllAttributes();
Effectiveness
Add Effectiveness
Adding an effectiveness requires a reference to an attribute.
// x2 effectiveness
myAttribute.AddEffectiveness(otherAttribute, 2f);
Remove Effectiveness
Removing an effectiveness requires a reference to an attribute.
myAttribute.AddEffectiveness(otherAttribute);
Check If An Effectiveness Exists
bool exists = myAttribute.HasEffectiveness(otherAttribute);
Get Effectiveness
You can get the effectiveness multiplier value with the GetEffectiveness
method.
float multiplier = myAttribute.GetEffectiveness(otherAttribute);
Strengths/Weaknesses
There are multiple methods available to get both the attack and defense weaknesses of an attribute.
Attack Strengths
The GetAttackStrengths
method returns a list of attributes that an attribute is more than 1x effective against.
var attributes = myAttribute.GetAttackStrengths();
Attack Weaknesses
The GetAttackWeaknessess
method returns a list of attributes that an attribute is less than 1x effective against.
var attributes = myAttribute.GetAttackWeaknesses();
Defense Strengths
The GetDefenseStrengths
method returns a list of attributes that are more less 1x effective against an attribute.
var attributes = myAttribute.GetDefenseStrengths();
Defense Weaknesses
The GetDefenseWeaknesses
method returns a list of attributes that are more than 1x effective against an attribute.
var attributes = myAttribute.GetDefenseWeaknesses();
Last updated