Properties 2da

From Dragon Age Toolset Wiki
Jump to: navigation, search

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
  • 1 - Base resistances
  • 2 - (deprecated)
  • 3 - Elemental (%) resistances
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:
  • 0 - DerivedDefault: No modification of stats
  • 1 - DerivedAttack: Each point of STR and DEX above 10 adds 0.5 attack
  • 2 - DerivedDefense: Each point of DEX above 10 adds 1.0 defence
  • 3 - DerivedArmor: No special interaction
  • 4 - DerivedAP: Each point of CUN above 10 adds (1/7) points of AP
  • 5 - DerivedSpellPower: Each point of MAG above 10 adds 1.0 Spellpower
  • 6 - DerivedHealth: Each point of CON above 10 adds 5 points of health
  • 7 - DerivedManaStamina: Each point of WIL above 10 adds 5 points of Mana/Stamina
  • 8 - DerivedResistanceMental: Each mental attribute point above 10 adds 0.5 Mental Resistance
  • 9 - DerivedResistancePhysical: Each physical attribute above 10 adds 0.5 Physical Resistance
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>