Properties 2da
The Properties 2da defines core properties for the game.
The 2da is defined as an m2da in the M2DA_base 2da and has an ID of 98. It can be extended by m2da fragments which have names starting with properties. It has not been assigned a TABLE_* constant.
Structure
Column | Type | Description |
---|---|---|
ID | int | A number that uniquely identifies the entry (unless creating an M2DA override). ID numbers are listed from smallest to highest within a given file but do not need to be consecutive. |
Stat | string | Human Readable statname. Spaces are not allowed in these strings |
Type | string | SIMPLE, ATTRIBUTE, DEPLETABLE |
Min | float | Minimum value possible |
Max | float | Maximum value possible |
UIMapping | int |
|
NameStrId | int | |
NameLowerStrId | int | |
DescStrId | int | |
Desc2StrId | int | ID of string to be displayed when hovering over the numerical values of the attributes in the character sheet. Contains detailed and technical text that explains the effects of these stats. Only necessary for rows 4 - 9 (i.e. Strength, Dexterity, Willpower, Magic, Cunning, and Constitution) |
NonCombatEffect | int | |
CombatEffect | int | |
EngineLink | int | See #Remarks below:
|
ToolsetName | string | |
bShowInToolset | int | |
Constant | comment | |
bShowInPartyPicker | int | |
Precision | int | Number of digits to display after the decimal place. |
Remarks
Depletable properties will be updated by their "combat" value every 2 seconds and their "non-combat" value every 5 seconds.
Eclipse engine code for the EngineLink column:
<cpp> // DerivedDefault: No modification of stats return 0;
// DerivedAttack: Each point of STR and DEX above 10 adds 0.5 attack return (FLOAT32) (max((cPropertiesList.GetValue(PROPERTY_ATTRIBUTE_STRENGTH) - 10) / 2.0 , 0.0) +
max((cPropertiesList.GetValue(PROPERTY_ATTRIBUTE_DEXTERITY) - 10) / 2.0 , 0.0));
// DerivedDefense: Each point of DEX above 10 adds 1.0 defence return (FLOAT32) max((cPropertiesList.GetValue(PROPERTY_ATTRIBUTE_DEXTERITY) - 10), 0.0);
// DerivedArmor: No special interaction return 0;
// DerivedAP: Each point of CUN above 10 adds (1/7) points of AP return (FLOAT32) max((cPropertiesList.GetValue(PROPERTY_ATTRIBUTE_CUNNING) - 10), 0.0) / 7;
// DerivedSpellPower: Each point of MAG above 10 adds 1.0 Spellpower return (FLOAT32) max((cPropertiesList.GetValue(PROPERTY_ATTRIBUTE_MAGIC) - 10), 0.0);
// DerivedHealth: Each point of CON above 10 adds 5 points of health return (FLOAT32) max((cPropertiesList.GetValue(PROPERTY_ATTRIBUTE_CONSTITUTION) - 10), 0.0) * 5;
// DerivedManaStamina: Each point of WIL above 10 adds 5 points of Mana/Stamina return (FLOAT32) max((cPropertiesList.GetValue(PROPERTY_ATTRIBUTE_WILLPOWER) - 10), 0.0) * 5;
// DerivedResistanceMental: Each mental attribute point above 10 adds 0.5 Mental Resistance return (FLOAT32) ((cPropertiesList.GetValue(PROPERTY_ATTRIBUTE_MAGIC) - 10) +
(cPropertiesList.GetValue(PROPERTY_ATTRIBUTE_WILLPOWER) - 10) + (cPropertiesList.GetValue(PROPERTY_ATTRIBUTE_INTELLIGENCE) - 10)) / 2.0;
// DerivedResistancePhysical: Each physical attribute above 10 adds 0.5 Physical Resistance return (FLOAT32) ((cPropertiesList.GetValue(PROPERTY_ATTRIBUTE_STRENGTH) - 10) +
(cPropertiesList.GetValue(PROPERTY_ATTRIBUTE_CONSTITUTION) - 10) + (cPropertiesList.GetValue(PROPERTY_ATTRIBUTE_DEXTERITY) - 10)) / 2.0;
</cpp>