| 1 | = Item or Mob Modifier = |
| 2 | Visit [wiki:olivine/dsl/types/core core types] for information on primitive and core types such as `real`. |
| 3 | |
| 4 | The modifier definition is a way to alter some fixed properties of a mob or indirectly through an item. |
| 5 | |
| 6 | ||= Name =||= Type =||= Description =|| |
| 7 | ||`amount`||real||This is a numerical value that characterizes the modification, how it is used is dictated by the `operator` property below|| |
| 8 | ||`operator`||[#operator operator]||How to apply `amount` to the base-value of whatever attribute this is going to modify, see below for a description|| |
| 9 | |
| 10 | == Operator == |
| 11 | The following three values determine how a modifier value is applied, any modifiers that are to be applied to some attribute are applied in sequence starting with `boost` modifiers then `augment` modifiers and then finally `scale` modifiers. First, there are two terms to familiarize yourself with in order to understand how this application works: |
| 12 | * ''base value'' - That is the starting value of the attribute without any modifiers |
| 13 | * ''current value'' - This is the value of the attribute after previous modifiers have been applied to it |
| 14 | |
| 15 | ||= Name =||= Vanilla Operation ID =||= Math =||= Description =|| |
| 16 | ||`boost`||0||''current value'' = ''base value'' + `amount`||Adds the `amount` value to the ''base value'' of the attribute|| |
| 17 | ||`augment`||1||''current value'' += ''base value'' * `amount`||The ''current value'' is increased by an amount calculated by multiplying the ''base value'' of the attribute by the `amount` value|| |
| 18 | ||`scale`||2||''current value'' *= `amount` + 1||The ''current value'' is multiplied by `amount` times plus one, in other words, a value of 0 doesn't increase it or decrease it but a value of 1 will double the current value, 2 will triple, etc.|| |