mirror of
https://github.com/magefree/mage.git
synced 2025-12-20 02:30:08 -08:00
Draft Cubes rework (better cube from deck, dynamic data, better errors processing, actual MTGO Vintage Cube) (#13705)
- GUI, table: added dynamic data support for Cube Types (no more depends on server's config names, part of #12050); - server: replace multiple MTGO Vintage Cubes by single cube, updated to April 2025 (part of #12050); - server: fixed table freeze on starting error (related to #11285); - GUI, table: added better support of Cube From Deck (client/server side errors, additional info about loaded cards, etc);
This commit is contained in:
parent
2034b3fe59
commit
3d45a24959
13 changed files with 755 additions and 61 deletions
|
|
@ -1,50 +1,63 @@
|
|||
|
||||
|
||||
package mage.view;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import mage.cards.ExpansionSet;
|
||||
import mage.game.draft.Draft;
|
||||
import mage.game.draft.DraftCube;
|
||||
import mage.game.draft.DraftPlayer;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author BetaSteward_at_googlemail.com
|
||||
* @author BetaSteward_at_googlemail.com, JayDi85
|
||||
*/
|
||||
public class DraftView implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private final List<String> sets = new ArrayList<>();
|
||||
private final List<String> setNames = new ArrayList<>();
|
||||
private final List<String> setCodes = new ArrayList<>();
|
||||
private final int boosterNum; // starts with 1
|
||||
private final int cardNum; // starts with 1
|
||||
private final boolean isCube;
|
||||
|
||||
private final List<String> players = new ArrayList<>();
|
||||
|
||||
public DraftView(Draft draft) {
|
||||
if (draft.getDraftCube() != null) {
|
||||
this.isCube = draft.getDraftCube() != null;
|
||||
if (this.isCube) {
|
||||
for (int i = 0; i < draft.getNumberBoosters(); i++) {
|
||||
DraftCube cube = draft.getDraftCube();
|
||||
sets.add(cube.getName());
|
||||
setNames.add(cube.getName());
|
||||
setCodes.add(cube.getCode());
|
||||
}
|
||||
} else {
|
||||
for (ExpansionSet set: draft.getSets()) {
|
||||
sets.add(set.getName());
|
||||
for (ExpansionSet set : draft.getSets()) {
|
||||
setNames.add(set.getName());
|
||||
setCodes.add(set.getCode());
|
||||
}
|
||||
}
|
||||
this.boosterNum = draft.getBoosterNum();
|
||||
this.cardNum = draft.getCardNum();
|
||||
for(DraftPlayer draftPlayer :draft.getPlayers()) {
|
||||
for (DraftPlayer draftPlayer : draft.getPlayers()) {
|
||||
players.add(draftPlayer.getPlayer().getName());
|
||||
}
|
||||
}
|
||||
|
||||
public List<String> getSets() {
|
||||
return sets;
|
||||
public String getBoosterInfo(int index) {
|
||||
if (index >= this.setCodes.size() || this.setCodes.size() != this.setNames.size()) {
|
||||
return "error";
|
||||
}
|
||||
|
||||
if (this.isCube) {
|
||||
return this.setNames.get(index);
|
||||
} else {
|
||||
return String.join(" - ", this.setCodes.get(index), this.setNames.get(index));
|
||||
}
|
||||
}
|
||||
|
||||
public List<String> getSetNames() {
|
||||
return setNames;
|
||||
}
|
||||
|
||||
public List<String> getSetCodes() {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue