tabletop 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
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
+