blob: d31f104cdc301c9b525d9df96dcb5bfd07f1d7b6 (
plain)
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
|
package bjc.dicelang.neodice.diepool;
import java.util.*;
import bjc.dicelang.neodice.*;
public class KeepFirstDiePool implements DiePool {
private final int number;
private final DiePool pool;
public KeepFirstDiePool(DiePool pool, int number) {
this.pool = pool;
this.number = number;
}
@Override
public int[] roll(Random rng) {
int[] rolls = pool.roll(rng);
if (rolls.length >= number) {
return rolls;
} else {
int[] newRolls = new int[number];
for (int index = 0; index < number; index++) {
newRolls[index] = rolls[index];
}
return newRolls;
}
}
@Override
public Die[] contained() {
return pool.contained();
}
@Override
public String toString() {
return String.format("%skF%d", pool, number);
}
@Override
public int hashCode() {
return Objects.hash(number, pool);
}
@Override
public boolean equals(Object obj) {
if (this == obj) return true;
if (obj == null) return false;
if (getClass() != obj.getClass()) return false;
KeepFirstDiePool other = (KeepFirstDiePool) obj;
return number == other.number && Objects.equals(pool, other.pool);
}
}
|