tabletop 0.2.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. data/.gitignore +1 -0
  2. data/Rakefile +1 -1
  3. data/doc/Fixnum.html +313 -0
  4. data/doc/Tabletop/Coin.html +351 -0
  5. data/doc/Tabletop/Die.html +480 -0
  6. data/doc/Tabletop/FudgeDie.html +315 -0
  7. data/doc/Tabletop/NotEnoughTokensError.html +146 -0
  8. data/doc/Tabletop/Pool.html +770 -0
  9. data/doc/Tabletop/Possibility.html +235 -0
  10. data/doc/Tabletop/Roll.html +731 -0
  11. data/doc/Tabletop/TokenStack.html +394 -0
  12. data/doc/Tabletop.html +185 -0
  13. data/doc/created.rid +8 -0
  14. data/doc/images/brick.png +0 -0
  15. data/doc/images/brick_link.png +0 -0
  16. data/doc/images/bug.png +0 -0
  17. data/doc/images/bullet_black.png +0 -0
  18. data/doc/images/bullet_toggle_minus.png +0 -0
  19. data/doc/images/bullet_toggle_plus.png +0 -0
  20. data/doc/images/date.png +0 -0
  21. data/doc/images/find.png +0 -0
  22. data/doc/images/loadingAnimation.gif +0 -0
  23. data/doc/images/macFFBgHack.png +0 -0
  24. data/doc/images/package.png +0 -0
  25. data/doc/images/page_green.png +0 -0
  26. data/doc/images/page_white_text.png +0 -0
  27. data/doc/images/page_white_width.png +0 -0
  28. data/doc/images/plugin.png +0 -0
  29. data/doc/images/ruby.png +0 -0
  30. data/doc/images/tag_green.png +0 -0
  31. data/doc/images/wrench.png +0 -0
  32. data/doc/images/wrench_orange.png +0 -0
  33. data/doc/images/zoom.png +0 -0
  34. data/doc/index.html +167 -0
  35. data/doc/js/darkfish.js +116 -0
  36. data/doc/js/jquery.js +32 -0
  37. data/doc/js/quicksearch.js +114 -0
  38. data/doc/js/thickbox-compressed.js +10 -0
  39. data/doc/lib/fixnum_rb.html +54 -0
  40. data/doc/lib/tabletop/pool_rb.html +54 -0
  41. data/doc/lib/tabletop/randomizers_rb.html +52 -0
  42. data/doc/lib/tabletop/roll_rb.html +52 -0
  43. data/doc/lib/tabletop/token_rb.html +52 -0
  44. data/doc/lib/tabletop/version_rb.html +52 -0
  45. data/doc/lib/tabletop_rb.html +52 -0
  46. data/doc/rdoc.css +763 -0
  47. data/lib/fixnum.rb +8 -0
  48. data/lib/tabletop/pool.rb +32 -1
  49. data/lib/tabletop/randomizers.rb +22 -1
  50. data/lib/tabletop/roll.rb +65 -10
  51. data/lib/tabletop/token.rb +7 -4
  52. data/lib/tabletop/version.rb +1 -1
  53. data/spec/randomizers_spec.rb +6 -1
  54. data/spec/spec_helper.rb +1 -1
  55. data/tabletop.gemspec +1 -0
  56. metadata +60 -5
@@ -0,0 +1,770 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
3
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5
+ <head>
6
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
7
+
8
+ <title>Class: Tabletop::Pool</title>
9
+
10
+ <link rel="stylesheet" href="../rdoc.css" type="text/css" media="screen" />
11
+
12
+ <script src="../js/jquery.js" type="text/javascript" charset="utf-8"></script>
13
+ <script src="../js/thickbox-compressed.js" type="text/javascript" charset="utf-8"></script>
14
+ <script src="../js/quicksearch.js" type="text/javascript" charset="utf-8"></script>
15
+ <script src="../js/darkfish.js" type="text/javascript" charset="utf-8"></script>
16
+
17
+ </head>
18
+ <body id="top" class="class">
19
+
20
+ <div id="metadata">
21
+ <div id="home-metadata">
22
+ <div id="home-section" class="section">
23
+ <h3 class="section-header">
24
+ <a href="../index.html">Home</a>
25
+ <a href="../index.html#classes">Classes</a>
26
+ <a href="../index.html#methods">Methods</a>
27
+ </h3>
28
+ </div>
29
+ </div>
30
+
31
+ <div id="file-metadata">
32
+ <div id="file-list-section" class="section">
33
+ <h3 class="section-header">In Files</h3>
34
+ <div class="section-body">
35
+ <ul>
36
+
37
+ <li><a href="../lib/tabletop/pool_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
38
+ class="thickbox" title="lib/tabletop/pool.rb">lib/tabletop/pool.rb</a></li>
39
+
40
+ </ul>
41
+ </div>
42
+ </div>
43
+
44
+
45
+ </div>
46
+
47
+ <div id="class-metadata">
48
+
49
+ <!-- Parent Class -->
50
+ <div id="parent-class-section" class="section">
51
+ <h3 class="section-header">Parent</h3>
52
+
53
+ <p class="link">DelegateClass(Array)</p>
54
+
55
+ </div>
56
+
57
+
58
+
59
+
60
+
61
+
62
+
63
+ <!-- Method Quickref -->
64
+ <div id="method-list-section" class="section">
65
+ <h3 class="section-header">Methods</h3>
66
+ <ul class="link-list">
67
+
68
+ <li><a href="#method-c-new">::new</a></li>
69
+
70
+ <li><a href="#method-i-2A">#*</a></li>
71
+
72
+ <li><a href="#method-i-2B">#+</a></li>
73
+
74
+ <li><a href="#method-i-3C-3D-3E">#<=></a></li>
75
+
76
+ <li><a href="#method-i-dice">#dice</a></li>
77
+
78
+ <li><a href="#method-i-drop">#drop</a></li>
79
+
80
+ <li><a href="#method-i-drop_highest">#drop_highest</a></li>
81
+
82
+ <li><a href="#method-i-drop_lowest">#drop_lowest</a></li>
83
+
84
+ <li><a href="#method-i-highest">#highest</a></li>
85
+
86
+ <li><a href="#method-i-lowest">#lowest</a></li>
87
+
88
+ <li><a href="#method-i-roll">#roll</a></li>
89
+
90
+ <li><a href="#method-i-sets">#sets</a></li>
91
+
92
+ <li><a href="#method-i-sum">#sum</a></li>
93
+
94
+ <li><a href="#method-i-to_int">#to_int</a></li>
95
+
96
+ <li><a href="#method-i-values">#values</a></li>
97
+
98
+ </ul>
99
+ </div>
100
+
101
+
102
+
103
+ <!-- Included Modules -->
104
+ <div id="includes-section" class="section">
105
+ <h3 class="section-header">Included Modules</h3>
106
+ <ul class="link-list">
107
+
108
+
109
+ <li><span class="include">Comparable</span></li>
110
+
111
+
112
+ </ul>
113
+ </div>
114
+
115
+ </div>
116
+
117
+ <div id="project-metadata">
118
+
119
+
120
+
121
+ <div id="classindex-section" class="section project-section">
122
+ <h3 class="section-header">Class/Module Index
123
+ <span class="search-toggle"><img src="../images/find.png"
124
+ height="16" width="16" alt="[+]"
125
+ title="show/hide quicksearch" /></span></h3>
126
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
127
+ <fieldset>
128
+ <legend>Quicksearch</legend>
129
+ <input type="text" name="quicksearch" value=""
130
+ class="quicksearch-field" />
131
+ </fieldset>
132
+ </form>
133
+
134
+ <ul class="link-list">
135
+
136
+ <li><a href="../Tabletop.html">Tabletop</a></li>
137
+
138
+ <li><a href="../Tabletop/Coin.html">Tabletop::Coin</a></li>
139
+
140
+ <li><a href="../Tabletop/Die.html">Tabletop::Die</a></li>
141
+
142
+ <li><a href="../Tabletop/FudgeDie.html">Tabletop::FudgeDie</a></li>
143
+
144
+ <li><a href="../Tabletop/NotEnoughTokensError.html">Tabletop::NotEnoughTokensError</a></li>
145
+
146
+ <li><a href="../Tabletop/Pool.html">Tabletop::Pool</a></li>
147
+
148
+ <li><a href="../Tabletop/Roll.html">Tabletop::Roll</a></li>
149
+
150
+ <li><a href="../Tabletop/TokenStack.html">Tabletop::TokenStack</a></li>
151
+
152
+ <li><a href="../Fixnum.html">Fixnum</a></li>
153
+
154
+ </ul>
155
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
156
+ </div>
157
+
158
+
159
+ </div>
160
+ </div>
161
+
162
+ <div id="documentation">
163
+ <h1 class="class">Tabletop::Pool</h1>
164
+
165
+ <div id="description" class="description">
166
+
167
+ </div><!-- description -->
168
+
169
+
170
+
171
+
172
+ <div id="5Buntitled-5D" class="documentation-section">
173
+
174
+
175
+
176
+
177
+
178
+
179
+
180
+
181
+ <!-- Methods -->
182
+
183
+ <div id="public-class-method-details" class="method-section section">
184
+ <h3 class="section-header">Public Class Methods</h3>
185
+
186
+
187
+ <div id="new-method" class="method-detail ">
188
+ <a name="method-c-new"></a>
189
+
190
+
191
+ <div class="method-heading">
192
+ <span class="method-name">new</span><span
193
+ class="method-args">(init_dice)</span>
194
+ <span class="method-click-advice">click to toggle source</span>
195
+ </div>
196
+
197
+
198
+ <div class="method-description">
199
+
200
+ <p>requires one parameter, which can be either of</p>
201
+
202
+ <pre>- an array of Die objects
203
+ - a string in d-notation</pre>
204
+
205
+
206
+
207
+ <div class="method-source-code" id="new-source">
208
+ <pre>
209
+ <span class="ruby-comment"># File lib/tabletop/pool.rb, line 12</span>
210
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">init_dice</span>)
211
+ <span class="ruby-keyword">return</span> <span class="ruby-keyword">super</span>(<span class="ruby-identifier">init_dice</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">init_dice</span>.<span class="ruby-identifier">instance_of?</span>(<span class="ruby-constant">Array</span>)
212
+ <span class="ruby-identifier">d_groups</span> = <span class="ruby-identifier">init_dice</span>.<span class="ruby-identifier">split</span>
213
+ <span class="ruby-identifier">dice</span> = []
214
+ <span class="ruby-identifier">d_groups</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">d_notation</span><span class="ruby-operator">|</span>
215
+ <span class="ruby-identifier">number</span>, <span class="ruby-identifier">sides</span> = <span class="ruby-identifier">d_notation</span>.<span class="ruby-identifier">split</span>(<span class="ruby-string">'d'</span>)
216
+ <span class="ruby-identifier">number</span> = <span class="ruby-identifier">number</span>.<span class="ruby-identifier">to_i</span>
217
+ <span class="ruby-identifier">number</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">number</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
218
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">sides</span>.<span class="ruby-identifier">to_i</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
219
+ <span class="ruby-identifier">number</span>.<span class="ruby-identifier">times</span> { <span class="ruby-identifier">dice</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">Die</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">sides</span>.<span class="ruby-identifier">to_i</span>)}
220
+ <span class="ruby-keyword">elsif</span> <span class="ruby-identifier">sides</span> <span class="ruby-operator">==</span> <span class="ruby-string">&quot;F&quot;</span>
221
+ <span class="ruby-identifier">number</span>.<span class="ruby-identifier">times</span> {<span class="ruby-identifier">dice</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-constant">FudgeDie</span>.<span class="ruby-identifier">new</span>}
222
+ <span class="ruby-keyword">end</span>
223
+ <span class="ruby-keyword">end</span>
224
+ <span class="ruby-keyword">super</span>(<span class="ruby-identifier">dice</span>)
225
+ <span class="ruby-keyword">end</span></pre>
226
+ </div><!-- new-source -->
227
+
228
+ </div>
229
+
230
+
231
+
232
+
233
+ </div><!-- new-method -->
234
+
235
+
236
+ </div><!-- public-class-method-details -->
237
+
238
+ <div id="public-instance-method-details" class="method-section section">
239
+ <h3 class="section-header">Public Instance Methods</h3>
240
+
241
+
242
+ <div id="2A-method" class="method-detail ">
243
+ <a name="method-i-2A"></a>
244
+
245
+
246
+ <div class="method-heading">
247
+ <span class="method-name">*</span><span
248
+ class="method-args">(operand)</span>
249
+ <span class="method-click-advice">click to toggle source</span>
250
+ </div>
251
+
252
+
253
+ <div class="method-description">
254
+
255
+ <p>Returns <a href="Pool.html#method-i-sum">sum</a> times the operand</p>
256
+
257
+
258
+
259
+ <div class="method-source-code" id="2A-source">
260
+ <pre>
261
+ <span class="ruby-comment"># File lib/tabletop/pool.rb, line 50</span>
262
+ <span class="ruby-keyword">def</span> *(<span class="ruby-identifier">operand</span>)
263
+ <span class="ruby-identifier">sum</span> * <span class="ruby-identifier">operand</span>
264
+ <span class="ruby-keyword">end</span></pre>
265
+ </div><!-- 2A-source -->
266
+
267
+ </div>
268
+
269
+
270
+
271
+
272
+ </div><!-- 2A-method -->
273
+
274
+
275
+ <div id="2B-method" class="method-detail ">
276
+ <a name="method-i-2B"></a>
277
+
278
+
279
+ <div class="method-heading">
280
+ <span class="method-name">+</span><span
281
+ class="method-args">(operand)</span>
282
+ <span class="method-click-advice">click to toggle source</span>
283
+ </div>
284
+
285
+
286
+ <div class="method-description">
287
+
288
+ <p>Behavior depends on the class of what is passed to it.</p>
289
+ <table class="rdoc-list"><tr><td class="rdoc-term"><p>Numeric</p></td>
290
+ <td>
291
+ <p>returns the sum of the operand and the values of all dice in the receiving
292
+ pool</p>
293
+ </td></tr><tr><td class="rdoc-term"><p><a href="Pool.html">Pool</a></p></td>
294
+ <td>
295
+ <p>returns a new pool with copies of all the dice in both operands</p>
296
+ </td></tr><tr><td class="rdoc-term"><p>AnythingElse</p></td>
297
+ <td>
298
+ <p>raises an ArgumentError</p>
299
+ </td></tr></table>
300
+
301
+
302
+
303
+ <div class="method-source-code" id="2B-source">
304
+ <pre>
305
+ <span class="ruby-comment"># File lib/tabletop/pool.rb, line 33</span>
306
+ <span class="ruby-keyword">def</span> <span class="ruby-operator">+</span>(<span class="ruby-identifier">operand</span>)
307
+ <span class="ruby-comment"># if the operator is a pool, or an array only of Die objects...</span>
308
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">operand</span>.<span class="ruby-identifier">instance_of?</span>(<span class="ruby-constant">Pool</span>) <span class="ruby-keyword">or</span> (<span class="ruby-identifier">operand</span>.<span class="ruby-identifier">instance_of?</span>(<span class="ruby-constant">Array</span>) <span class="ruby-keyword">and</span> <span class="ruby-operator">!</span>(<span class="ruby-identifier">operand</span>.<span class="ruby-identifier">detect</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">obj</span><span class="ruby-operator">|</span> <span class="ruby-operator">!</span>(<span class="ruby-identifier">obj</span>.<span class="ruby-identifier">instance_of?</span>(<span class="ruby-constant">Die</span>))}))
309
+ <span class="ruby-identifier">new_union</span>(<span class="ruby-identifier">operand</span>)
310
+ <span class="ruby-keyword">elsif</span> <span class="ruby-identifier">operand</span>.<span class="ruby-identifier">kind_of?</span> <span class="ruby-constant">Numeric</span>
311
+ <span class="ruby-identifier">sum</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">operand</span>
312
+ <span class="ruby-keyword">else</span>
313
+ <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-node">&quot;Cannot add operand of class #{operand.class}&quot;</span>
314
+ <span class="ruby-keyword">end</span>
315
+ <span class="ruby-keyword">end</span></pre>
316
+ </div><!-- 2B-source -->
317
+
318
+ </div>
319
+
320
+
321
+
322
+
323
+ </div><!-- 2B-method -->
324
+
325
+
326
+ <div id="3C-3D-3E-method" class="method-detail ">
327
+ <a name="method-i-3C-3D-3E"></a>
328
+
329
+
330
+ <div class="method-heading">
331
+ <span class="method-name">&lt;=&gt;</span><span
332
+ class="method-args">(operand)</span>
333
+ <span class="method-click-advice">click to toggle source</span>
334
+ </div>
335
+
336
+
337
+ <div class="method-description">
338
+
339
+ <p>Compares the operand to <a href="Pool.html#method-i-sum">sum</a></p>
340
+
341
+
342
+
343
+ <div class="method-source-code" id="3C-3D-3E-source">
344
+ <pre>
345
+ <span class="ruby-comment"># File lib/tabletop/pool.rb, line 45</span>
346
+ <span class="ruby-keyword">def</span> <span class="ruby-operator">&lt;=&gt;</span>(<span class="ruby-identifier">operand</span>)
347
+ <span class="ruby-identifier">sum</span> <span class="ruby-operator">&lt;=&gt;</span> <span class="ruby-identifier">operand</span>.<span class="ruby-identifier">to_int</span>
348
+ <span class="ruby-keyword">end</span></pre>
349
+ </div><!-- 3C-3D-3E-source -->
350
+
351
+ </div>
352
+
353
+
354
+
355
+
356
+ </div><!-- 3C-3D-3E-method -->
357
+
358
+
359
+ <div id="dice-method" class="method-detail ">
360
+ <a name="method-i-dice"></a>
361
+
362
+
363
+ <div class="method-heading">
364
+ <span class="method-name">dice</span><span
365
+ class="method-args">()</span>
366
+ <span class="method-click-advice">click to toggle source</span>
367
+ </div>
368
+
369
+
370
+ <div class="method-description">
371
+
372
+ <p>Returns a string of the pool’s dice in d-notation</p>
373
+
374
+
375
+
376
+ <div class="method-source-code" id="dice-source">
377
+ <pre>
378
+ <span class="ruby-comment"># File lib/tabletop/pool.rb, line 64</span>
379
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">dice</span>
380
+ <span class="ruby-identifier">fudge</span> = <span class="ruby-keyword">nil</span>
381
+ <span class="ruby-identifier">result</span> = {}
382
+ <span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">die</span><span class="ruby-operator">|</span>
383
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">die</span>.<span class="ruby-identifier">instance_of?</span>(<span class="ruby-constant">FudgeDie</span>)
384
+ <span class="ruby-identifier">fudge</span> = <span class="ruby-identifier">count</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">d</span><span class="ruby-operator">|</span> <span class="ruby-identifier">d</span>.<span class="ruby-identifier">instance_of?</span>(<span class="ruby-constant">FudgeDie</span>)}
385
+ <span class="ruby-keyword">else</span>
386
+ <span class="ruby-identifier">result</span>[<span class="ruby-identifier">die</span>.<span class="ruby-identifier">sides</span>] = <span class="ruby-identifier">count</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">d</span><span class="ruby-operator">|</span> <span class="ruby-identifier">d</span>.<span class="ruby-identifier">sides</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">die</span>.<span class="ruby-identifier">sides</span>}
387
+ <span class="ruby-keyword">end</span>
388
+ <span class="ruby-keyword">end</span>
389
+ <span class="ruby-identifier">d_array</span> = <span class="ruby-identifier">result</span>.<span class="ruby-identifier">sort</span>.<span class="ruby-identifier">collect</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">d_group</span><span class="ruby-operator">|</span>
390
+ <span class="ruby-identifier">number</span> = <span class="ruby-identifier">d_group</span>[<span class="ruby-value">1</span>]
391
+ <span class="ruby-identifier">number</span> = <span class="ruby-string">&quot;&quot;</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">number</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span>
392
+ <span class="ruby-identifier">sides</span> = <span class="ruby-identifier">d_group</span>[<span class="ruby-value">0</span>]
393
+ <span class="ruby-node">&quot;#{number}d#{sides}&quot;</span>
394
+ <span class="ruby-keyword">end</span>
395
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">fudge</span>
396
+ <span class="ruby-identifier">d_array</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;#{fudge}dF&quot;</span>
397
+ <span class="ruby-keyword">end</span>
398
+ <span class="ruby-identifier">d_array</span>
399
+ <span class="ruby-keyword">end</span></pre>
400
+ </div><!-- dice-source -->
401
+
402
+ </div>
403
+
404
+
405
+
406
+
407
+ </div><!-- dice-method -->
408
+
409
+
410
+ <div id="drop-method" class="method-detail ">
411
+ <a name="method-i-drop"></a>
412
+
413
+
414
+ <div class="method-heading">
415
+ <span class="method-name">drop</span><span
416
+ class="method-args">(to_drop)</span>
417
+ <span class="method-click-advice">click to toggle source</span>
418
+ </div>
419
+
420
+
421
+ <div class="method-description">
422
+
423
+ <p>Returns a copy of the current pool, minus any dice with values equal the
424
+ value (or in the array of values) passed.</p>
425
+
426
+
427
+
428
+ <div class="method-source-code" id="drop-source">
429
+ <pre>
430
+ <span class="ruby-comment"># File lib/tabletop/pool.rb, line 134</span>
431
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">drop</span>(<span class="ruby-identifier">to_drop</span>)
432
+ <span class="ruby-identifier">to_drop</span> = [<span class="ruby-identifier">to_drop</span>].<span class="ruby-identifier">flatten</span> <span class="ruby-comment">#turn it into an array if it isn't one.</span>
433
+ <span class="ruby-identifier">kept</span> = <span class="ruby-identifier">reject</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">die</span><span class="ruby-operator">|</span> <span class="ruby-identifier">to_drop</span>.<span class="ruby-identifier">any?</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">drop_value</span><span class="ruby-operator">|</span> <span class="ruby-identifier">die</span>.<span class="ruby-identifier">value</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">drop_value</span> }}
434
+ <span class="ruby-keyword">return</span> <span class="ruby-constant">Pool</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">kept</span>)
435
+ <span class="ruby-keyword">end</span></pre>
436
+ </div><!-- drop-source -->
437
+
438
+ </div>
439
+
440
+
441
+
442
+
443
+ </div><!-- drop-method -->
444
+
445
+
446
+ <div id="drop_highest-method" class="method-detail ">
447
+ <a name="method-i-drop_highest"></a>
448
+
449
+
450
+ <div class="method-heading">
451
+ <span class="method-name">drop_highest</span><span
452
+ class="method-args">(n=1)</span>
453
+ <span class="method-click-advice">click to toggle source</span>
454
+ </div>
455
+
456
+
457
+ <div class="method-description">
458
+
459
+ <p>Returns a copy of the <a href="Pool.html">Pool</a>, minus the n
460
+ highest-value dice</p>
461
+
462
+
463
+
464
+ <div class="method-source-code" id="drop_highest-source">
465
+ <pre>
466
+ <span class="ruby-comment"># File lib/tabletop/pool.rb, line 122</span>
467
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">drop_highest</span>(<span class="ruby-identifier">n</span>=<span class="ruby-value">1</span>)
468
+ <span class="ruby-constant">Pool</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword">self</span><span class="ruby-operator">-</span><span class="ruby-identifier">highest</span>(<span class="ruby-identifier">n</span>))
469
+ <span class="ruby-keyword">end</span></pre>
470
+ </div><!-- drop_highest-source -->
471
+
472
+ </div>
473
+
474
+
475
+
476
+
477
+ </div><!-- drop_highest-method -->
478
+
479
+
480
+ <div id="drop_lowest-method" class="method-detail ">
481
+ <a name="method-i-drop_lowest"></a>
482
+
483
+
484
+ <div class="method-heading">
485
+ <span class="method-name">drop_lowest</span><span
486
+ class="method-args">(n=1)</span>
487
+ <span class="method-click-advice">click to toggle source</span>
488
+ </div>
489
+
490
+
491
+ <div class="method-description">
492
+
493
+ <p>Returns a copy of the <a href="Pool.html">Pool</a>, minus the n
494
+ lowest-value dice.</p>
495
+
496
+
497
+
498
+ <div class="method-source-code" id="drop_lowest-source">
499
+ <pre>
500
+ <span class="ruby-comment"># File lib/tabletop/pool.rb, line 127</span>
501
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">drop_lowest</span>(<span class="ruby-identifier">n</span>=<span class="ruby-value">1</span>)
502
+ <span class="ruby-constant">Pool</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword">self</span><span class="ruby-operator">-</span><span class="ruby-identifier">lowest</span>(<span class="ruby-identifier">n</span>))
503
+ <span class="ruby-keyword">end</span></pre>
504
+ </div><!-- drop_lowest-source -->
505
+
506
+ </div>
507
+
508
+
509
+
510
+
511
+ </div><!-- drop_lowest-method -->
512
+
513
+
514
+ <div id="highest-method" class="method-detail ">
515
+ <a name="method-i-highest"></a>
516
+
517
+
518
+ <div class="method-heading">
519
+ <span class="method-name">highest</span><span
520
+ class="method-args">(n=1)</span>
521
+ <span class="method-click-advice">click to toggle source</span>
522
+ </div>
523
+
524
+
525
+ <div class="method-description">
526
+
527
+ <p>Returns a <a href="Pool.html">Pool</a> containing copies of the n highest
528
+ dice</p>
529
+
530
+
531
+
532
+ <div class="method-source-code" id="highest-source">
533
+ <pre>
534
+ <span class="ruby-comment"># File lib/tabletop/pool.rb, line 112</span>
535
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">highest</span>(<span class="ruby-identifier">n</span>=<span class="ruby-value">1</span>)
536
+ <span class="ruby-constant">Pool</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">sort</span>.<span class="ruby-identifier">reverse</span>.<span class="ruby-identifier">first</span>(<span class="ruby-identifier">n</span>))
537
+ <span class="ruby-keyword">end</span></pre>
538
+ </div><!-- highest-source -->
539
+
540
+ </div>
541
+
542
+
543
+
544
+
545
+ </div><!-- highest-method -->
546
+
547
+
548
+ <div id="lowest-method" class="method-detail ">
549
+ <a name="method-i-lowest"></a>
550
+
551
+
552
+ <div class="method-heading">
553
+ <span class="method-name">lowest</span><span
554
+ class="method-args">(n=1)</span>
555
+ <span class="method-click-advice">click to toggle source</span>
556
+ </div>
557
+
558
+
559
+ <div class="method-description">
560
+
561
+ <p>Returns a <a href="Pool.html">Pool</a> containing copies of the n lowest
562
+ dice</p>
563
+
564
+
565
+
566
+ <div class="method-source-code" id="lowest-source">
567
+ <pre>
568
+ <span class="ruby-comment"># File lib/tabletop/pool.rb, line 117</span>
569
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">lowest</span>(<span class="ruby-identifier">n</span>=<span class="ruby-value">1</span>)
570
+ <span class="ruby-constant">Pool</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">sort</span>.<span class="ruby-identifier">first</span>(<span class="ruby-identifier">n</span>))
571
+ <span class="ruby-keyword">end</span></pre>
572
+ </div><!-- lowest-source -->
573
+
574
+ </div>
575
+
576
+
577
+
578
+
579
+ </div><!-- lowest-method -->
580
+
581
+
582
+ <div id="roll-method" class="method-detail ">
583
+ <a name="method-i-roll"></a>
584
+
585
+
586
+ <div class="method-heading">
587
+ <span class="method-name">roll</span><span
588
+ class="method-args">()</span>
589
+ <span class="method-click-advice">click to toggle source</span>
590
+ </div>
591
+
592
+
593
+ <div class="method-description">
594
+
595
+ <p>Rolls every die in the pool, and returns the <a href="Pool.html">Pool</a>.</p>
596
+
597
+
598
+
599
+ <div class="method-source-code" id="roll-source">
600
+ <pre>
601
+ <span class="ruby-comment"># File lib/tabletop/pool.rb, line 87</span>
602
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">roll</span>
603
+ <span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">die</span><span class="ruby-operator">|</span>
604
+ <span class="ruby-identifier">die</span>.<span class="ruby-identifier">roll</span>
605
+ <span class="ruby-keyword">end</span>
606
+ <span class="ruby-keyword">self</span>
607
+ <span class="ruby-keyword">end</span></pre>
608
+ </div><!-- roll-source -->
609
+
610
+ </div>
611
+
612
+
613
+
614
+
615
+ </div><!-- roll-method -->
616
+
617
+
618
+ <div id="sets-method" class="method-detail ">
619
+ <a name="method-i-sets"></a>
620
+
621
+
622
+ <div class="method-heading">
623
+ <span class="method-name">sets</span><span
624
+ class="method-args">()</span>
625
+ <span class="method-click-advice">click to toggle source</span>
626
+ </div>
627
+
628
+
629
+ <div class="method-description">
630
+
631
+ <p>Returns a string describing all sets of die values in the pool in ORE
632
+ notation.</p>
633
+
634
+
635
+
636
+ <div class="method-source-code" id="sets-source">
637
+ <pre>
638
+ <span class="ruby-comment"># File lib/tabletop/pool.rb, line 103</span>
639
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">sets</span>
640
+ <span class="ruby-identifier">result</span> = {}
641
+ <span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">die</span><span class="ruby-operator">|</span>
642
+ <span class="ruby-identifier">result</span>[<span class="ruby-identifier">die</span>.<span class="ruby-identifier">value</span>] = <span class="ruby-identifier">count</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">d</span><span class="ruby-operator">|</span> <span class="ruby-identifier">d</span>.<span class="ruby-identifier">value</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">die</span>.<span class="ruby-identifier">value</span>}
643
+ <span class="ruby-keyword">end</span>
644
+ <span class="ruby-identifier">result</span>.<span class="ruby-identifier">sort_by</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">height</span>, <span class="ruby-identifier">width</span><span class="ruby-operator">|</span> [<span class="ruby-identifier">width</span>, <span class="ruby-identifier">height</span>] }.<span class="ruby-identifier">collect</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span> <span class="ruby-identifier">i</span>[<span class="ruby-value">1</span>].<span class="ruby-identifier">to_s</span><span class="ruby-operator">+</span><span class="ruby-string">&quot;x&quot;</span><span class="ruby-operator">+</span><span class="ruby-identifier">i</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">to_s</span>}.<span class="ruby-identifier">reverse</span>
645
+ <span class="ruby-keyword">end</span></pre>
646
+ </div><!-- sets-source -->
647
+
648
+ </div>
649
+
650
+
651
+
652
+
653
+ </div><!-- sets-method -->
654
+
655
+
656
+ <div id="sum-method" class="method-detail ">
657
+ <a name="method-i-sum"></a>
658
+
659
+
660
+ <div class="method-heading">
661
+ <span class="method-name">sum</span><span
662
+ class="method-args">()</span>
663
+ <span class="method-click-advice">click to toggle source</span>
664
+ </div>
665
+
666
+
667
+ <div class="method-description">
668
+
669
+ <p>Returns the sum of all values of dice in the pool</p>
670
+
671
+
672
+
673
+ <div class="method-source-code" id="sum-source">
674
+ <pre>
675
+ <span class="ruby-comment"># File lib/tabletop/pool.rb, line 95</span>
676
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">sum</span>
677
+ <span class="ruby-identifier">inject</span>(<span class="ruby-value">0</span>) {<span class="ruby-operator">|</span><span class="ruby-identifier">sum</span>, <span class="ruby-identifier">d</span><span class="ruby-operator">|</span> <span class="ruby-identifier">sum</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">d</span>.<span class="ruby-identifier">value</span>}
678
+ <span class="ruby-keyword">end</span></pre>
679
+ </div><!-- sum-source -->
680
+
681
+ </div>
682
+
683
+
684
+
685
+
686
+ </div><!-- sum-method -->
687
+
688
+
689
+ <div id="to_int-method" class="method-detail ">
690
+ <a name="method-i-to_int"></a>
691
+
692
+
693
+ <div class="method-heading">
694
+ <span class="method-name">to_int</span><span
695
+ class="method-args">()</span>
696
+ <span class="method-click-advice">click to toggle source</span>
697
+ </div>
698
+
699
+
700
+ <div class="method-description">
701
+
702
+
703
+
704
+
705
+
706
+ <div class="method-source-code" id="to_int-source">
707
+ <pre>
708
+ <span class="ruby-comment"># File lib/tabletop/pool.rb, line 98</span>
709
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">to_int</span>
710
+ <span class="ruby-identifier">sum</span>
711
+ <span class="ruby-keyword">end</span></pre>
712
+ </div><!-- to_int-source -->
713
+
714
+ </div>
715
+
716
+
717
+
718
+
719
+ </div><!-- to_int-method -->
720
+
721
+
722
+ <div id="values-method" class="method-detail ">
723
+ <a name="method-i-values"></a>
724
+
725
+
726
+ <div class="method-heading">
727
+ <span class="method-name">values</span><span
728
+ class="method-args">()</span>
729
+ <span class="method-click-advice">click to toggle source</span>
730
+ </div>
731
+
732
+
733
+ <div class="method-description">
734
+
735
+ <p>Returns an array of the value of each die in the pool</p>
736
+
737
+
738
+
739
+ <div class="method-source-code" id="values-source">
740
+ <pre>
741
+ <span class="ruby-comment"># File lib/tabletop/pool.rb, line 59</span>
742
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">values</span>
743
+ <span class="ruby-identifier">map</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">die</span><span class="ruby-operator">|</span> <span class="ruby-identifier">die</span>.<span class="ruby-identifier">value</span>}
744
+ <span class="ruby-keyword">end</span></pre>
745
+ </div><!-- values-source -->
746
+
747
+ </div>
748
+
749
+
750
+
751
+
752
+ </div><!-- values-method -->
753
+
754
+
755
+ </div><!-- public-instance-method-details -->
756
+
757
+ </div><!-- 5Buntitled-5D -->
758
+
759
+
760
+ </div><!-- documentation -->
761
+
762
+ <div id="validator-badges">
763
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
764
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
765
+ Rdoc Generator</a> 2</small>.</p>
766
+ </div>
767
+
768
+ </body>
769
+ </html>
770
+