1 | # encoding: UTF-8 |
||
2 | |||
3 | # Tirada de dados, Sigmar |
||
4 | def dado_sigmar |
||
5 | # Returns a random dice-face string |
||
6 | %w(hammer comet plus blank eagle eagle)[rand(6)] |
||
7 | end |
||
8 | |||
9 | # Tirada de dados, 2d6 del tesoro, individual |
||
10 | def dado_tesoro |
||
11 | # Returns a value from 1 to 6 (normal dice) |
||
12 | rand(6) + 1 |
||
13 | end |
||
14 | |||
15 | # Main method 2d6 + Sigmar dice |
||
16 | def tesoro(sigmar, dado1, dado2) |
||
17 | # 12 values (2d6) ordered |
||
18 | valores = %w(pifia vacia maldición trampa monstruo oro |
||
19 | perg pot comida alijo cofre) |
||
20 | # Requests (send) a method, named equals to the values. |
||
21 | send(valores[dado1 + dado2 - 2], sigmar, dado1, dado2) |
||
22 | end |
||
23 | |||
24 | # posibles 5 valores del dado sigmar |
||
25 | def caras_sigmar |
||
26 | # El sexto es eagle x2 |
||
27 | %w(eagle plus blank hammer comet) |
||
28 | end |
||
29 | |||
30 | # Resultados dependiendo de Sigmar |
||
31 | # -------------------------------- |
||
32 | |||
33 | def buscar_tesoros (tipo, sigmar, *doble) |
||
34 | # DB in YAML format |
||
35 | bt = load_yaml('buscar_tesoros')[tipo] |
||
36 | sig = doble ? sigmar + '2' : sigmar |
||
37 | bt[sig] || bt['default'] |
||
38 | end |
||
39 | |||
40 | def pifia(sigmar, _dado1, _dado2) # 2 |
||
41 | buscar_tesoros('pifia', sigmar) |
||
42 | end |
||
43 | |||
44 | def vacia(sigmar, _dado1, _dado2) # 3 |
||
45 | buscar_tesoros('vacía', sigmar) |
||
46 | end |
||
47 | |||
48 | def maldición(sigmar, dado1, dado2) # 4 |
||
49 | # special condition |
||
50 | doble = dado1 == dado2 |
||
51 | return "TBD" # TODO Arreglar esto |
||
52 | end |
||
53 | |||
54 | def trampa(sigmar, _dado1, _dado2) # 5 |
||
55 | buscar_tesoros('trampa', sigmar) |
||
56 | end |
||
57 | |||
58 | def monstruo(sigmar, _dado1, _dado2) # 6 |
||
59 | buscar_tesoros('monstruo', sigmar) |
||
60 | end |
||
61 | |||
62 | def oro(sigmar, _dado1, _dado2) # 7 |
||
63 | buscar_tesoros('oro', sigmar) |
||
64 | end |
||
65 | |||
66 | def perg(sigmar, _dado1, _dado2) # 8 |
||
67 | buscar_tesoros('pergamino', sigmar) |
||
68 | end |
||
69 | |||
70 | def pot(sigmar, _dado1, _dado2) # 9 |
||
71 | buscar_tesoros('poción', sigmar) |
||
72 | end |
||
73 | |||
74 | def comida(sigmar, _dado1, _dado2) # 10 |
||
75 | buscar_tesoros('comida', sigmar) |
||
76 | end |
||
77 | |||
78 | View Code Duplication | def alijo(sigmar, _dado1, _dado2) # 11 |
|
0 ignored issues
–
show
Duplication
introduced
by
![]() |
|||
79 | r = %w(gema runa gema gema joya) |
||
80 | c = [gema_random, runa_random, 'estropeada', gema_random, joya_random] |
||
81 | r[caras_sigmar.index(sigmar)] + ': ' + c[caras_sigmar.index(sigmar)] |
||
82 | end |
||
83 | |||
84 | View Code Duplication | def cofre(sigmar, _dado1, _dado2) # 12 |
|
0 ignored issues
–
show
|
|||
85 | r = %w(gema joya runa objeto artefacto) |
||
86 | c = [gema_random, joya_random, runa_random, 'mágico', 'de reto'] |
||
87 | r[caras_sigmar.index(sigmar)] + ': ' + c[caras_sigmar.index(sigmar)] |
||
88 | end |
||
89 | |||
90 | # Genera una gema al azar |
||
91 | def gema_random |
||
92 | gemas.sample.name |
||
93 | end |
||
94 | |||
95 | # Genera una joya al azar |
||
96 | def joya_random |
||
97 | joyas.sample.name |
||
98 | end |
||
99 | |||
100 | # Genera una runa al azar |
||
101 | def runa_random |
||
102 | runas.sample.name |
||
103 | end |
||
104 |