forked from External/mage
Drafts: refactor to use same pack/pick number logic (#8039);
This commit is contained in:
parent
400acae0c1
commit
06ae494c5b
10 changed files with 41 additions and 52 deletions
|
|
@ -25,14 +25,17 @@ public class RichManBoosterDraft extends DraftImpl {
|
|||
|
||||
@Override
|
||||
public void start() {
|
||||
cardNum = 0;
|
||||
while (!isAbort() && cardNum < 36) {
|
||||
cardNum = 1;
|
||||
boosterNum = 1;
|
||||
while (!isAbort() && cardNum <= 36) {
|
||||
openBooster();
|
||||
cardNum = 0;
|
||||
cardNum = 1;
|
||||
fireUpdatePlayersEvent();
|
||||
while (!isAbort() && pickCards()) {
|
||||
passLeft();
|
||||
fireUpdatePlayersEvent();
|
||||
}
|
||||
boosterNum++;
|
||||
}
|
||||
resetBufferedCards();
|
||||
this.fireEndDraftEvent();
|
||||
|
|
@ -46,7 +49,7 @@ public class RichManBoosterDraft extends DraftImpl {
|
|||
UUID nextId = table.getNext();
|
||||
DraftPlayer next = players.get(nextId);
|
||||
while (true) {
|
||||
List<Card> nextBooster = sets.get(cardNum % sets.size()).createBooster();
|
||||
List<Card> nextBooster = sets.get((cardNum - 1) % sets.size()).createBooster();
|
||||
next.setBooster(nextBooster);
|
||||
if (Objects.equals(nextId, startId)) {
|
||||
break;
|
||||
|
|
@ -59,7 +62,6 @@ public class RichManBoosterDraft extends DraftImpl {
|
|||
|
||||
@Override
|
||||
protected boolean pickCards() {
|
||||
cardNum++;
|
||||
for (DraftPlayer player : players.values()) {
|
||||
if (cardNum > 36) {
|
||||
return false;
|
||||
|
|
@ -67,6 +69,7 @@ public class RichManBoosterDraft extends DraftImpl {
|
|||
player.setPicking();
|
||||
player.getPlayer().pickCard(player.getBooster(), player.getDeck(), this);
|
||||
}
|
||||
cardNum++;
|
||||
synchronized (this) {
|
||||
while (!donePicking()) {
|
||||
try {
|
||||
|
|
@ -81,13 +84,7 @@ public class RichManBoosterDraft extends DraftImpl {
|
|||
@Override
|
||||
public void firePickCardEvent(UUID playerId) {
|
||||
DraftPlayer player = players.get(playerId);
|
||||
if (cardNum > 36) {
|
||||
cardNum = 36;
|
||||
}
|
||||
if (cardNum <= 0) {
|
||||
cardNum = 1;
|
||||
}
|
||||
|
||||
int cardNum = Math.min(36, this.cardNum);
|
||||
// richman uses custom times
|
||||
int time = (int) Math.ceil(customProfiTimes[cardNum - 1] * timing.getCustomTimeoutFactor());
|
||||
playerQueryEventSource.pickCard(playerId, "Pick card", player.getBooster(), time);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue