Celtic Minstrel
69024df4f5
Formula engine: Allow two-argument if() - returns null if false
2016-03-18 02:17:15 -04:00
Celtic Minstrel
2e412df9b9
Formula_engine: make distance_between function a core function
2016-03-18 02:17:14 -04:00
Celtic Minstrel
50c42caf11
Formula engine: Add "in" operator for map/list containment
2016-03-18 02:17:11 -04:00
Celtic Minstrel
e814bb48be
Formula engine: Allow dot notation on strings and maps
...
- On maps, it selects string keys that equal the identifier
- On strings, it allows character, word, or "item" indexing
2016-03-18 02:16:27 -04:00
Celtic Minstrel
f0abbf1111
Add a few more formula string tests
2016-03-18 00:30:41 -04:00
Celtic Minstrel
928ccbfc06
Formula engine: fix max() and min() not working on decimals
2016-03-18 00:30:38 -04:00
Celtic Minstrel
a9a29a11cc
Add a few more formula math tests
2016-03-18 00:30:37 -04:00
Celtic Minstrel
f6be40bb71
Transfer original formula unit tests to Boost framework
...
In the process, I have corrected a few tests and added a few extras
2016-03-18 00:30:36 -04:00
Celtic Minstrel
e78b5d7baf
Formula engine: fix comparison trying to cast everything to decimal
...
Now it only tries to cast to decimal if both are numbers.
2016-03-18 00:30:34 -04:00
Celtic Minstrel
b53ee994c9
Formula engine: now exponentiation returns null on NaN
2016-03-18 00:30:33 -04:00
Celtic Minstrel
6da744a37a
Formula engine: add empty map literal
2016-03-18 00:29:39 -04:00
Celtic Minstrel
de4186c47b
Formula engine: add type() function
2016-03-18 00:29:18 -04:00
Celtic Minstrel
4a3fce393a
Formula engine: fix index operator having lowest precedence
...
It now has the highest precedence
2016-03-17 23:27:23 -04:00
Celtic Minstrel
a4469210d4
Formula engine: fix exponentiation being left-associative
2016-03-17 23:27:22 -04:00
Celtic Minstrel
0b84677ee9
Formula engine: Lists can be indexed with negative numbers
...
(this counts from the end)
2016-03-17 23:27:22 -04:00
Celtic Minstrel
38f6e8c4f1
Formula engine: Add string escapes mechanism
...
This builds on the string substitution syntax:
- [(] means an open bracket
- [)] means a close bracket
- ['] means a single quote / apostrophe
The tokenizer is now aware of string substitutions, making this possible
as well as the nesting of strings within string substitutions.
2016-03-17 23:27:21 -04:00
Celtic Minstrel
b239dd5fd1
Formula engine: New string functions find_string and replace
2016-03-17 23:27:20 -04:00
Celtic Minstrel
bb0d00f348
Formula engine: Fix rounding issues with math functions
2016-03-17 23:27:20 -04:00
Celtic Minstrel
6aed979113
Reformat the formula function classes
2016-03-17 23:27:19 -04:00
Celtic Minstrel
a40ffc0351
Formula engine: Catch cases of NaN resulting from math functions
...
They are now converted to null.
2016-03-17 23:27:18 -04:00
Celtic Minstrel
523154f807
Formula engine: Add several more math functions
2016-03-17 23:27:17 -04:00
Celtic Minstrel
f32b51b022
Formula engine: Add root functions
2016-03-17 23:27:16 -04:00
Celtic Minstrel
c589298e0f
Formula engine: Add inverse trig functions
2016-03-17 23:27:15 -04:00
Celtic Minstrel
1cf9f616ec
Formula engine: Substring function now accepts negative size
...
This results in counting backwards from the given offset.
Size of 1 and -1 have the same effect.
2016-03-17 23:27:15 -04:00
Celtic Minstrel
159dbcf28e
Formula engine: New take_while function
...
Returns all elements up to the first one failing the condition
2016-03-17 23:27:14 -04:00
Celtic Minstrel
390baf7d11
Formula engine: New function to zip a list of lists
2016-03-17 23:27:13 -04:00
Celtic Minstrel
2637f23afd
Formula engine: New function to reverse a string
2016-03-17 23:27:12 -04:00
Celtic Minstrel
59dd9cc6af
Formula engine: Add optional base argument to reduce()
2016-03-17 23:27:12 -04:00
Celtic Minstrel
c1ca72f1dc
Formula engine: fix abs() and modulus not working on decimals
2016-03-17 23:27:11 -04:00
Celtic Minstrel
fe05f51c9e
Formula engine: Fix decimal values not being convertible to integers
2016-03-17 23:27:11 -04:00
Celtic Minstrel
4aa725ac29
Formula engine: When possible, use synced RNG for the dice roll operator
2016-03-17 23:27:10 -04:00
Celtic Minstrel
ad6528d13c
Formula engine: Support function definitions everywhere
...
This constructs a temporary function symbol table (lasting only the duration of the formula)
if no symbol table was passed to the formula at construction time.
2016-03-17 23:27:09 -04:00
Celtic Minstrel
6490b535a3
Tweak output of formula evaluation command prompt
2016-03-17 23:27:08 -04:00
Celtic Minstrel
1c9eb0cdbb
Formula engine: add tan and tail functions, extra argument to head function
2016-03-17 23:27:08 -04:00
Celtic Minstrel
e4b944d83b
Make variant iterator bidirectional and stdlib compatible
2016-03-17 23:27:07 -04:00
Celtic Minstrel
279ced9b55
Formula engine: allow lists to be indexed by a list
...
This produces a slice of the original list
2016-03-17 23:27:06 -04:00
Celtic Minstrel
0674f2a844
Formula engine: support wfl/wflend instead of fai/faiend
2016-03-17 23:27:06 -04:00
Celtic Minstrel
1ae426c51c
Formula engine: new concatenate and range operators
...
str .. str = concatenation
list .. list = concatenation
int ~ int = range (as a list)
2016-03-17 23:27:05 -04:00
Celtic Minstrel
03bbc79367
Formula engine: change undocumented string substitution syntax
...
It used to use {}, which gets caught by the preprocessor.
Now it uses [] instead.
2016-03-17 23:27:04 -04:00
Celtic Minstrel
240b5f61a7
Output formula errors in unit filters to WML error stream
...
(And consider them to match no units)
2016-03-17 23:27:03 -04:00
Celtic Minstrel
26a2638f2c
Make the formula and Lua views of a unit coincide more closely
...
Several keys were either missing or misnamed in the formula view.
These have been changed to match the Lua and WML names for the keys.
This affects canrecruit, moves, and max_moves, as well as status.
In addition, a large number of keys were missing entirely from the formula view.
Most of these keys have now been added and can be accessed from formulas.
A few that have little use in filters (such as image_mods or profile) are still missing.
The Lua view missed a few keys that the formula view did provide.
Although these could in principle have been obtained by using the special __cfg key,
they have now been added to the Lua view anyway.
2016-03-17 23:27:03 -04:00
Celtic Minstrel
f02a038879
Fix wesnoth.erase_unit for recall units
2016-03-17 22:41:05 -04:00
Charles Dang
8b2ba647d1
Slight contrast bump to Wooden Bridges (regular and rotten)
2016-03-18 10:09:33 +11:00
ln-zookeeper
541dbb95c9
Fixed Clean Gray Cobbles drawing transitions on itself
2016-03-18 00:30:02 +02:00
ln-zookeeper
4e6a4e8aad
Cleaned up off-hex stray pixels
2016-03-18 00:02:39 +02:00
Charles Dang
80823d7987
Enable formula debugger in debug mode
2016-03-18 05:21:13 +11:00
Charles Dang
0a8247d837
Forward-declare a variant header include
2016-03-17 23:19:21 +11:00
Charles Dang
e8dd50aa8c
tformula_debugger: use verbatim scroll labels
2016-03-17 23:18:08 +11:00
Charles Dang
86261779f2
tscroll_label: update to verbatim style (matches description now)
2016-03-17 23:17:44 +11:00
Elvish_Hunter
256dd1e3da
Ported hexometer for Bash to Python3
2016-03-17 11:19:04 +01:00