forked from syntruth/Dice-Bag
-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathChangeLog.txt
140 lines (115 loc) · 5.49 KB
/
ChangeLog.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
Changes for Version 3.2.2
* Updated tests to check for missing count values. How this didn't
happen earlier will have to remain a mystery of the ages. (>_>)
* Bugfix for #5
* Clean up in removing references to xdx hash to an actual hash
variable. This plays into future plans on remoxing the :xdx hash
earlier in the parse/transform pass.
Changes for Version 3.2.1
* Refactored parts of the Transform class to 1.) fit better with accepted
Parslet practices and 2.) better handle how sub-trees are handled,
producing more predictable data from it.
* Refactored parts of the main DiceBag module to reflect changes that were
done to the Transform class.
* Removed the #parse method override from the Parser class, since the logic
fit better within the DiceBag#normalize_tree method.
* Refactored how the :options are parsed within the Parser class to make it
a bit more clear what is going on there.
* Added tests for RollPartString and RollString modules.
* Updated tests to cover a few more things, as well as added the number list
for the manually set srand value. (See comments in the dicebag_test.rb file.
* Reorganized the test/roll_part.rb to DRY it up a bit more.
* MOAR BUG FIXES.
Changes for Version 3.2
* TESTS! Which needed to be done long ago. Really, no exuse. Bad, Syntruth,
bad!
* BUG FIXES! Because of tests. Also, long overdue. Some really stupid bugs in
there.
Changes for Version 3.1.2
=========================
* General code clean up and some refactoring.
* Added roll_part_string.rb and roll_string.rb to modularize the #to_s
methods for the RollPart and Roll classes. Part of the above clean up
and refactoring.
Changes for Version 3.1.1
=========================
* Updated RollPart#to_s to reflect xDx option strings. It was still using
older ~ and ! for drop and keep options.
Changes for Version 3.1.0
=========================
* Added the 't#' target number option to xDx strings. See the ReadMe file.
* Changed the ~ (drop) and ! (keep) xDx option sigils to be 'd' and 'k'
respectively. This breaks sligtly with tradition, but keeps things a bit
more normalized option-sigil-wise. Or something.
Changes for Version 3.0.4 and 3.0.5
===================================
* More minor, but critical fixes.
Changes for Version 3.0.3
=========================
* Fixed a fatal bug in the Transform class in hashify_options.
Changes for Version 3.0.1
=========================
* Code clean up.
Changes for Version 3.0
=======================
* Totally rewritten to use the Parslet gem. Cleaner code, easier
to extend.
Changes for Version 2.5.3
=========================
* Changed how Reroll parsing works, slightly. Now, if the reroll value
is equal to or greater the sides value, it is changed sides value
minus 1, which is probably what the user meant anyways.
* There is no longer an EXPLODE_LIMIT constant in the Dice module.
Instead, the explode limit is set via the RollPart class using the
RollPart.explode_limit() class method. Calling that method without
an argument returns the current explode limit, otherwise if called
with a fixnum value, it sets the explode limit. The explode limit
still defaults to 20.
* Also created RollPart.explode_limit = N access class method.
* Various minor code clean ups spread across dicelib and the sub-libs.
Changes for Version 2.5.2
=========================
* Bug fix for non-number 'e' exploding values, that stemmed from the
removal of the #x option.
* Added savage_worlds_dice.rb to handle Savage Worlds RPG dice
mechanics.
* Added gurps_dice.rb, a module extension that handles standard
GURPS dice checks.
* Moved the RollPart's maximum(), minimum(), and average() methods
out of the class and into the Dice module as module methods.
RollPart instances now just pass self to those methods. This allows
those methods to be used outside of a Roll/SimpleRoll/RollPart
instances. These three methods now take either a simple dice string
or a RollPart instance.
Changes for Version 2.5.1
=========================
* Removed attr :total from RollPart, since there is a method for
that currently that'll call roll() if the part has not yet
rolled.
* Fixed bug in RollPart, where a @result reference was not removed.
Changes for Version 2.5
=======================
* Modified standard_dice.rb dice to now use the SimpleRoll class.
* Added SimpleRoll class, a subclass of the Roll class, that is meant
for simple, single dice rolls, without labels or any static parts.
* Reworked RollPart to no longer deal with #x :times feature of the
simple dice string. It was rarely used, and if using the lib
programmatically, it's just much easier to loop over a Roll
instance anyways. This allowed the removal of RollResult class and
cleaning up of some code, like moving the tally() method to within
the RollPart class.
Changes for Version 2.1
=======================
* Added <=>() to the RollResult class to handle sorting of results based
on the total.
* Added a parsed() method to ComplexResult, that holds that part of the
complex strings parsed data.
* Moved the RollResult and ComplexResult structures into their own classes.
This allows for more methods to be added to them dynamically, in an
easier way.
* The Dice::Roll class now remembers the last roll, which can be obtained
via the result() method. If the instance has yet to to do a roll, then
roll() is called first.
* Cleaned up code in the RollPart#parse() method, removing some legacy
variables that no longer apply to the 2.* version of the library.
* Added this ChangeLog! :D