taw / magic-search-engine

Search engine for Magic cards
MIT License
47 stars 19 forks source link

Jumpstart Boosters for Sealed #229

Closed taw closed 1 year ago

taw commented 1 year ago

There's 6 sets with Jumpstart. Here's automatically generated yaml (I'd put more quotes everywhere, but that's what yaml library is doing) for two of them, by bin/generate_jumpstart_precon_boosters:

---
name: March of the Machine Jumpstart Booster
pack:
- precon_1: 17
  precon_1_foils: 2
- precon_2: 17
  precon_2_foils: 2
- precon_3: 17
  precon_3_foils: 2
- precon_4: 17
  precon_4_foils: 2
- precon_5: 17
  precon_5_foils: 2
- precon_6: 17
  precon_6_foils: 2
- precon_7: 17
  precon_7_foils: 2
- precon_8: 17
  precon_8_foils: 2
- precon_9: 17
  precon_9_foils: 2
- precon_10: 17
  precon_10_foils: 2
sheets:
  precon_1:
    deck: mom/Brood 1
    count: 17
  precon_1_foils:
    deck: mom/Brood 1
    count: 2
    foil: true
  precon_2:
    deck: mom/Brood 2
    count: 17
  precon_2_foils:
    deck: mom/Brood 2
    count: 2
    foil: true
  precon_3:
    deck: mom/Buff 1
    count: 17
  precon_3_foils:
    deck: mom/Buff 1
    count: 2
    foil: true
  precon_4:
    deck: mom/Buff 2
    count: 17
  precon_4_foils:
    deck: mom/Buff 2
    count: 2
    foil: true
  precon_5:
    deck: mom/Expendable 1
    count: 17
  precon_5_foils:
    deck: mom/Expendable 1
    count: 2
    foil: true
  precon_6:
    deck: mom/Expendable 2
    count: 17
  precon_6_foils:
    deck: mom/Expendable 2
    count: 2
    foil: true
  precon_7:
    deck: mom/Overachiever 1
    count: 17
  precon_7_foils:
    deck: mom/Overachiever 1
    count: 2
    foil: true
  precon_8:
    deck: mom/Overachiever 2
    count: 17
  precon_8_foils:
    deck: mom/Overachiever 2
    count: 2
    foil: true
  precon_9:
    deck: mom/Reinforcement 1
    count: 17
  precon_9_foils:
    deck: mom/Reinforcement 1
    count: 2
    foil: true
  precon_10:
    deck: mom/Reinforcement 2
    count: 17
  precon_10_foils:
    deck: mom/Reinforcement 2
    count: 2
    foil: true
---
name: Jumpstart 2022 Jumpstart Booster
pack:
- precon_1: 20
- precon_2: 20
- precon_3: 20
- precon_4: 20
- precon_5: 20
- precon_6: 20
- precon_7: 20
- precon_8: 20
- precon_9: 20
- precon_10: 20
- precon_11: 20
- precon_12: 20
- precon_13: 20
- precon_14: 20
- precon_15: 20
- precon_16: 20
- precon_17: 20
- precon_18: 20
- precon_19: 20
- precon_20: 20
- precon_21: 20
- precon_22: 20
- precon_23: 20
- precon_24: 20
- precon_25: 20
- precon_26: 20
- precon_27: 20
- precon_28: 20
- precon_29: 20
- precon_30: 20
- precon_31: 20
- precon_32: 20
- precon_33: 20
- precon_34: 20
- precon_35: 20
- precon_36: 20
- precon_37: 20
- precon_38: 20
- precon_39: 20
- precon_40: 20
- precon_41: 20
- precon_42: 20
- precon_43: 20
- precon_44: 20
- precon_45: 20
- precon_46: 20
- precon_47: 20
- precon_48: 20
- precon_49: 20
- precon_50: 20
- precon_51: 20
- precon_52: 20
- precon_53: 20
- precon_54: 20
- precon_55: 20
- precon_56: 20
- precon_57: 20
- precon_58: 20
- precon_59: 20
- precon_60: 20
- precon_61: 20
- precon_62: 20
- precon_63: 20
- precon_64: 20
- precon_65: 20
- precon_66: 20
- precon_67: 20
- precon_68: 20
- precon_69: 20
- precon_70: 20
- precon_71: 20
- precon_72: 20
- precon_73: 20
- precon_74: 20
- precon_75: 20
- precon_76: 20
- precon_77: 20
- precon_78: 20
- precon_79: 20
- precon_80: 20
- precon_81: 20
- precon_82: 20
- precon_83: 20
- precon_84: 20
- precon_85: 20
- precon_86: 20
- precon_87: 20
- precon_88: 20
- precon_89: 20
- precon_90: 20
- precon_91: 20
- precon_92: 20
- precon_93: 20
- precon_94: 20
- precon_95: 20
- precon_96: 20
- precon_97: 20
- precon_98: 20
- precon_99: 20
- precon_100: 20
- precon_101: 20
- precon_102: 20
- precon_103: 20
- precon_104: 20
- precon_105: 20
- precon_106: 20
- precon_107: 20
- precon_108: 20
- precon_109: 20
- precon_110: 20
- precon_111: 20
- precon_112: 20
- precon_113: 20
- precon_114: 20
- precon_115: 20
- precon_116: 20
- precon_117: 20
- precon_118: 20
- precon_119: 20
- precon_120: 20
- precon_121: 20
sheets:
  precon_1:
    deck: j22/Blink 1
    count: 20
  precon_2:
    deck: j22/Blink 2
    count: 20
  precon_3:
    deck: j22/Blink 3
    count: 20
  precon_4:
    deck: j22/Blink 4
    count: 20
  precon_5:
    deck: j22/Boneyard 1
    count: 20
  precon_6:
    deck: j22/Boneyard 2
    count: 20
  precon_7:
    deck: j22/Cats 1
    count: 20
  precon_8:
    deck: j22/Cats 2
    count: 20
  precon_9:
    deck: j22/Cats 3
    count: 20
  precon_10:
    deck: j22/Cats 4
    count: 20
  precon_11:
    deck: j22/Constellation 1
    count: 20
  precon_12:
    deck: j22/Constellation 2
    count: 20
  precon_13:
    deck: j22/Cruel 1
    count: 20
  precon_14:
    deck: j22/Cruel 2
    count: 20
  precon_15:
    deck: j22/Cruel 3
    count: 20
  precon_16:
    deck: j22/Cruel 4
    count: 20
  precon_17:
    deck: j22/Cycling 1
    count: 20
  precon_18:
    deck: j22/Cycling 2
    count: 20
  precon_19:
    deck: j22/Demons 1
    count: 20
  precon_20:
    deck: j22/Demons 2
    count: 20
  precon_21:
    deck: j22/Detective 1
    count: 20
  precon_22:
    deck: j22/Detective 2
    count: 20
  precon_23:
    deck: j22/Detective 3
    count: 20
  precon_24:
    deck: j22/Detective 4
    count: 20
  precon_25:
    deck: j22/Dragons 1
    count: 20
  precon_26:
    deck: j22/Dragons 2
    count: 20
  precon_27:
    deck: j22/Eldrazi
    count: 20
  precon_28:
    deck: j22/Elves 1
    count: 20
  precon_29:
    deck: j22/Elves 2
    count: 20
  precon_30:
    deck: j22/Elves 3
    count: 20
  precon_31:
    deck: j22/Elves 4
    count: 20
  precon_32:
    deck: j22/Experimental 1
    count: 20
  precon_33:
    deck: j22/Experimental 2
    count: 20
  precon_34:
    deck: j22/Faeries 1
    count: 20
  precon_35:
    deck: j22/Faeries 2
    count: 20
  precon_36:
    deck: j22/Fangs 1
    count: 20
  precon_37:
    deck: j22/Fangs 2
    count: 20
  precon_38:
    deck: j22/Fangs 3
    count: 20
  precon_39:
    deck: j22/Fangs 4
    count: 20
  precon_40:
    deck: j22/Ferocious 1
    count: 20
  precon_41:
    deck: j22/Ferocious 2
    count: 20
  precon_42:
    deck: j22/Ferocious 3
    count: 20
  precon_43:
    deck: j22/Ferocious 4
    count: 20
  precon_44:
    deck: j22/Fiery 1
    count: 20
  precon_45:
    deck: j22/Fiery 2
    count: 20
  precon_46:
    deck: j22/Fiery 3
    count: 20
  precon_47:
    deck: j22/Fiery 4
    count: 20
  precon_48:
    deck: j22/Gigantic 1
    count: 20
  precon_49:
    deck: j22/Gigantic 2
    count: 20
  precon_50:
    deck: j22/Go to School 1
    count: 20
  precon_51:
    deck: j22/Go to School 2
    count: 20
  precon_52:
    deck: j22/Goblins 1
    count: 20
  precon_53:
    deck: j22/Goblins 2
    count: 20
  precon_54:
    deck: j22/Goblins 3
    count: 20
  precon_55:
    deck: j22/Goblins 4
    count: 20
  precon_56:
    deck: j22/Gross 1
    count: 20
  precon_57:
    deck: j22/Gross 2
    count: 20
  precon_58:
    deck: j22/Gross 3
    count: 20
  precon_59:
    deck: j22/Gross 4
    count: 20
  precon_60:
    deck: j22/Holy 1
    count: 20
  precon_61:
    deck: j22/Holy 2
    count: 20
  precon_62:
    deck: j22/Holy 3
    count: 20
  precon_63:
    deck: j22/Holy 4
    count: 20
  precon_64:
    deck: j22/Insects 1
    count: 20
  precon_65:
    deck: j22/Insects 2
    count: 20
  precon_66:
    deck: j22/Insects 3
    count: 20
  precon_67:
    deck: j22/Insects 4
    count: 20
  precon_68:
    deck: j22/Inventive 1
    count: 20
  precon_69:
    deck: j22/Inventive 2
    count: 20
  precon_70:
    deck: j22/Inventive 3
    count: 20
  precon_71:
    deck: j22/Inventive 4
    count: 20
  precon_72:
    deck: j22/Knights
    count: 20
  precon_73:
    deck: j22/Landfall 1
    count: 20
  precon_74:
    deck: j22/Landfall 2
    count: 20
  precon_75:
    deck: j22/Law 1
    count: 20
  precon_76:
    deck: j22/Law 2
    count: 20
  precon_77:
    deck: j22/Law 3
    count: 20
  precon_78:
    deck: j22/Law 4
    count: 20
  precon_79:
    deck: j22/Merfolk 1
    count: 20
  precon_80:
    deck: j22/Merfolk 2
    count: 20
  precon_81:
    deck: j22/Merfolk 3
    count: 20
  precon_82:
    deck: j22/Merfolk 4
    count: 20
  precon_83:
    deck: j22/Morbid 1
    count: 20
  precon_84:
    deck: j22/Morbid 2
    count: 20
  precon_85:
    deck: j22/Multi-Headed 1
    count: 20
  precon_86:
    deck: j22/Multi-Headed 2
    count: 20
  precon_87:
    deck: j22/Primates
    count: 20
  precon_88:
    deck: j22/Raid 1
    count: 20
  precon_89:
    deck: j22/Raid 2
    count: 20
  precon_90:
    deck: j22/Raid 3
    count: 20
  precon_91:
    deck: j22/Raid 4
    count: 20
  precon_92:
    deck: j22/Rats
    count: 20
  precon_93:
    deck: j22/Scrying 1
    count: 20
  precon_94:
    deck: j22/Scrying 2
    count: 20
  precon_95:
    deck: j22/Shapeshifters
    count: 20
  precon_96:
    deck: j22/Snow
    count: 20
  precon_97:
    deck: j22/Speedy
    count: 20
  precon_98:
    deck: j22/Spicy
    count: 20
  precon_99:
    deck: j22/Spirits 1
    count: 20
  precon_100:
    deck: j22/Spirits 2
    count: 20
  precon_101:
    deck: j22/Teamwork 1
    count: 20
  precon_102:
    deck: j22/Teamwork 2
    count: 20
  precon_103:
    deck: j22/Think Again 1
    count: 20
  precon_104:
    deck: j22/Think Again 2
    count: 20
  precon_105:
    deck: j22/Think Again 3
    count: 20
  precon_106:
    deck: j22/Think Again 4
    count: 20
  precon_107:
    deck: j22/Treasure 1
    count: 20
  precon_108:
    deck: j22/Treasure 2
    count: 20
  precon_109:
    deck: j22/Treasure 3
    count: 20
  precon_110:
    deck: j22/Treasure 4
    count: 20
  precon_111:
    deck: j22/Unlucky Thirteen
    count: 20
  precon_112:
    deck: j22/Urza's
    count: 20
  precon_113:
    deck: j22/Vehicles
    count: 20
  precon_114:
    deck: j22/Wolves 1
    count: 20
  precon_115:
    deck: j22/Wolves 2
    count: 20
  precon_116:
    deck: j22/Wolves 3
    count: 20
  precon_117:
    deck: j22/Wolves 4
    count: 20
  precon_118:
    deck: j22/Zombies 1
    count: 20
  precon_119:
    deck: j22/Zombies 2
    count: 20
  precon_120:
    deck: j22/Zombies 3
    count: 20
  precon_121:
    deck: j22/Zombies 4
    count: 20

I think it would be fairly straightforward to get it connected all the way. It would need new card sheet type fixed, which might even have some limited uses elsewhere, like this:

# data from https://magic.wizards.com/en/news/feature/introducing-double-masters-vip-edition-2020-07-17
name: "Double Masters VIP Edition"
pack:
  foil_rare_mythic_borderless: 2
  foil_rare_mythic: 2
  foil_uncommon: 8
  foil_common: 9
  foil_basic_fixed: 10
  foil_basic: 2
sheets:
  foil_rare_mythic_borderless:
    foil: true
    filter: "e:2xm is:borderless"
    use: rare_mythic
  foil_rare_mythic:
    foil: true
    use: rare_mythic
  foil_basic_fixed:
    foil: true
    fixed: true
    rawquery: "e:2xm number:373-382"
    count: 10
  foil_basic:
    foil: true
    rawquery: "e:2xm t:basic"

But other than this one use in 2xm-vip, I'm not sure any other booster really needs it.

taw commented 1 year ago

This is now working except for that random slot and some UI cleanup.

taw commented 1 year ago

Random slots implemented as well.

It needs minor cleanup:

taw commented 1 year ago

@axxroytovu I changed labels a bit. Is this clear enough https://mtg.wtf/pack/mom-jumpstart ?

axxroytovu commented 1 year ago

I like it, much clearer. Im also working on a way for the automated builder to use the deck name instead of precon-x and that should dramatically improve readability.

taw commented 1 year ago

Yeah, it would probably be better to just strip all special characters and call it go_to_school_1, angels_1, buff_1_foil etc.

The whole precon_x was really meant as a placeholder, I didn't have time to go back and fix it.

taw commented 1 year ago

Also it's really unrelated but I see that there's extra dash at the end of slug for deck names that end with special character like: https://mtg.wtf/deck/jmp/above-the-clouds-1-

This final dash should be stripped as well. After that small fix, deck.slug.tr("-", "_") will work as sheet name.

axxroytovu commented 1 year ago

I was able to .chomp("-") to strip the trailing dash easily enough.

Fix is here: https://github.com/taw/magic-search-engine/pull/232

taw commented 1 year ago

Everything is done here.