diff --git a/items_2_help.html b/items_2_help.html index d0dad58..2fcd8cc 100644 --- a/items_2_help.html +++ b/items_2_help.html @@ -48,14 +48,14 @@
The WynnBuilder team have been hard at work giving you the latest and greatest tools for optimizing your most complex Wynncraft builds. Now, we're introducing WynnAtlas, the new, bigger, better, smarter, powerful-er item guide! Featuring an extremely flexible expression language for filtering and sorting items, WynnAtlas' advanced item search system gives build engineers the power to select items with a high degree of granularity. Picking components for your brand-new Divzer WFA build has never been easier!
+The WynnBuilder team has been hard at work giving you the latest and greatest tools for optimizing your most complex Wynncraft builds. Now, we're introducing WynnAtlas, the new, bigger, better, smarter, powerful-er item guide! Featuring an extremely flexible expression language for filtering and sorting items, WynnAtlas' advanced item search system gives build engineers the power to select items with a high degree of granularity. Picking components for your brand-new Divzer WFA build has never been easier!
The advanced item search interface uses two separate expressions: one for filtering items and the other for sorting them. The idea is that you can filter for items matching a set of criteria that are absolutely necessary for the item you want, then sort the remaining items to find the optimal build component. The expressions themselves are mathematical formulae that compute values from the properties of items, such as their damage values and identifications.
As an example, suppose you want a helmet granting at least 10 intelligence that maximizes spell damage gain for a build using the Nepta Floodbringer. We would start by writing a filter for helmets with our desired bound on intelligence:
{prop:type} {op:=} {str:"helmet"} {op:&} {prop:int} {op:>=} {num:10}-
Then, we would write an expression that computes the amount of damage we get from the helmet. To do this, we first check the damage numbers for the Nepta Floodbringer: assuming we aren't using any powders, we have 96–112 water damage scaled by the super-fast attack speed modifier of 4.3, giving us a total of 4.3 × (96 + 112) ÷ 2 = 447.2. We then multiply in the spell damage and water damage modifiers and add raw spell damage, giving us:
+Then, wee would write an expression that computes the amount of damage we get from the helmet. To do this, we first check the damage numbers for the Nepta Floodbringer: assuming we aren't using any powders, we have 96–112 water damage scaled by the super-fast attack speed modifier of 4.3, giving us a total of 4.3 × (96 + 112) ÷ 2 = 447.2. We then multiply in the spell damage and water damage modifiers and add raw spell damage, giving us:
{prop:sdRaw} {op:+} {num:447.2} {op:*} {op:(}{prop:sdPct} {op:+} {prop:wDamPct}{op:)} {op:/} {num:100}
And, voilĂ ! In the blink of an eye, we've discovered that Caesura is the best helmet for our criteria, granting 448.14 spell damage.
{prop:lb}; {prop:xpb}
The supported mathematical operations include the basic arithmetic operations as well as exponentiation. These operators obey the usual order of operations, with exponentiation having the highest priority. Parentheses are also supported for grouping.
({num:1} {op:+} {num:2}) {op:-} {num:3} {op:*} ({num:4} {op:/} {num:5}) {op:^} {num:6}-
The supported boolean operations include conjunction (“AND”) and disjunction (“OR”) using the &
and |
symbols, as well as unary inversion (“NOT”) using the !
symbol. Conjunction has higher priority than disjunction, so the following is true:
The supported boolean operations include conjunction (“AND”) and disjunction (“OR”) using the &
and |
symbols, as well as unary inversion (“NOT”) using the !
symbol. Disjunction has higher priority than conjunction, so the following is true:
{bool:true} {op:|} {bool:false} {op:&} {bool:true} {op:|} {bool:false} {op:=} {op:(}{bool:true} {op:|} {bool:false}{op:)} {op:&} {op:(}{bool:true} {op:|} {bool:false}{op:)}
For comparisons, equality and non-equality are represented by the =
and !=
symbols. The two operands can be of any type, and the result will always be a boolean describing whether the operands are equal. String comparisons are case-insensitive.
{prop:type} {op:=} {str:"wand"} {op:|} {prop:cat} {op:!=} {str:"weapon"}