(CardEdition e, EditionEntry cis, CardRules cr)
| 383 | } |
| 384 | |
| 385 | private void addSetCard(CardEdition e, EditionEntry cis, CardRules cr) { |
| 386 | int artIdx = IPaperCard.DEFAULT_ART_INDEX; |
| 387 | String key = e.getCode() + "/" + cis.name(); |
| 388 | if (artIds.containsKey(key)) { |
| 389 | artIdx = artIds.get(key) + 1; |
| 390 | } |
| 391 | artIds.put(key, artIdx); |
| 392 | |
| 393 | String variantName = cis.getFunctionalVariantName(); |
| 394 | String flavorName = cis.getFlavorName(); |
| 395 | assert(variantName == null || flavorName == null); //Can't currently assign both this way. |
| 396 | |
| 397 | if (variantName == null && !cr.getName().equals(cis.name())) { |
| 398 | //If an edition entry uses a known flavor name without specifying the variant, swap to that variant. |
| 399 | variantName = flavorNameMappings.get(cis.name()); |
| 400 | //System.out.printf("Auto-mapping flavor name \"%s\" -> \"%s\" $%s\n", cis.name(), cr.getName(), variantName); |
| 401 | } |
| 402 | if (flavorName != null) { |
| 403 | String suggestedFlavorName = e.getCode().startsWith("OM") ? "Alchemy" |
| 404 | : e.getCode().equals("SLX") ? "UniversesWithin" |
| 405 | : null; |
| 406 | variantName = cr.findOrCreateVariantForFlavorName(flavorName, suggestedFlavorName); |
| 407 | String normalizedFlavorName = cr.getDisplayNameForVariant(variantName); |
| 408 | if(!flavorNameMappings.containsKey(normalizedFlavorName)) { |
| 409 | flavorNameMappings.put(normalizedFlavorName, variantName); |
| 410 | flavorNameMappings.put(cr.getName(), IPaperCard.NO_FUNCTIONAL_VARIANT); |
| 411 | rulesByAltName.put(normalizedFlavorName, cr); |
| 412 | cacheFaceFlavorName(cr.getMainPart().getFunctionalVariant(variantName)); |
| 413 | if(cr.getOtherPart() != null) |
| 414 | cacheFaceFlavorName(cr.getOtherPart().getFunctionalVariant(variantName)); |
| 415 | } |
| 416 | } |
| 417 | |
| 418 | addCard(new PaperCard(cr, e.getCode(), cis.rarity(), artIdx, false, cis.collectorNumber(), cis.artistName(), variantName)); |
| 419 | } |
| 420 | |
| 421 | private boolean addFromSetByName(String cardName, CardEdition ed, CardRules cr) { |
| 422 | List<EditionEntry> cardsInSet = ed.getCardInSet(cardName); |
no test coverage detected