@@ -107,14 +107,24 @@ local schematic = {
107107 config = { type = " store_joker_create" },
108108 key = " schematic" ,
109109 loc_vars = function (self , info_queue )
110- info_queue [# info_queue + 1 ] = { set = " Joker" , key = " j_brainstorm" }
111110 return { vars = {} }
112111 end ,
113112 apply = function (self , tag , context )
114113 if context .type == " store_joker_create" then
115114 local card
116- if not G .GAME .banned_keys [" j_brainstorm" ] then
117- card = create_card (" Joker" , context .area , nil , nil , nil , nil , " j_brainstorm" )
115+ if # G .jokers .cards == 0 then
116+ tag :nope ()
117+ tag .triggered = true
118+ return
119+ end
120+ local chosen_key = pseudorandom_element (G .jokers .cards , pseudoseed (" schematic_tag" )).config .center .key
121+ local tries = 0
122+ while G .GAME .banned_keys [chosen_key ] and tries <= 10 do
123+ chosen_key = pseudorandom_element (G .jokers .cards , pseudoseed (" schematic_tag" )).config .center .key
124+ tries = tries + 1
125+ end
126+ if not G .GAME .banned_keys [chosen_key ] then
127+ card = create_card (" Joker" , context .area , nil , nil , nil , nil , chosen_key )
118128 create_shop_card_ui (card , " Joker" , context .area )
119129 card .states .visible = false
120130 tag :yep (" +" , G .C .RED , function ()
0 commit comments