@@ -434,7 +434,78 @@ local trade = {
434434 end ,
435435 demicoloncompat = true ,
436436 force_use = function (self , card , area )
437- self :use (card , area )
437+ -- self:use(card, area)
438+ local loc_name = {}
439+ local usable_vouchers = {}
440+ for k , v in ipairs (G .vouchers .cards ) do
441+ local can_use = true
442+ for kk , vv in ipairs (G .vouchers .cards ) do
443+ local center = G .P_CENTERS [vv .config .center .key ]
444+ if center .requires then
445+ for _ , vvv in pairs (center .requires ) do
446+ if vvv == v .config .center .key then
447+ can_use = false
448+ break
449+ end
450+ end
451+ end
452+ end
453+ if SMODS .is_eternal (v ) then
454+ can_use = false
455+ end
456+ if can_use then
457+ usable_vouchers [# usable_vouchers + 1 ] = v
458+ end
459+ end
460+ local unredeemed_voucher = pseudorandom_element (usable_vouchers , pseudoseed (" cry_trade" ))
461+ if not unredeemed_voucher then
462+ return
463+ end
464+ loc_name [1 ] = unredeemed_voucher .config .center .key
465+ unredeemed_voucher :unapply_to_run ()
466+ G .E_MANAGER :add_event (Event ({
467+ func = function ()
468+ Cryptid .update_used_vouchers ()
469+ return true
470+ end ,
471+ }))
472+ G .E_MANAGER :add_event (Event ({
473+ trigger = " after" ,
474+ delay = 0 ,
475+ func = function ()
476+ unredeemed_voucher :start_dissolve ()
477+ return true
478+ end ,
479+ }))
480+ for i = 1 , 2 do
481+ local _pool = get_current_pool (" Voucher" , nil , nil , nil , true )
482+ local center = pseudorandom_element (_pool , pseudoseed (" cry_trade_redeem" ))
483+ local it = 1
484+ while center == " UNAVAILABLE" do
485+ it = it + 1
486+ center = pseudorandom_element (_pool , pseudoseed (" cry_trade_redeem_resample" .. it ))
487+ end
488+ loc_name [i + 1 ] = center
489+ if not G .GAME .used_vouchers [center ] then
490+ G .GAME .used_vouchers [center ] = true
491+ end
492+ Card .apply_to_run (nil , G .P_CENTERS [center ])
493+ end
494+ print (localize ({
495+ type = " variable" ,
496+ key = " cry_trade_remove" ,
497+ vars = { localize ({ type = " name_text" , set = " Voucher" , key = loc_name [1 ] }) },
498+ }))
499+ print (localize ({
500+ type = " variable" ,
501+ key = " cry_trade_add" ,
502+ vars = { localize ({ type = " name_text" , set = " Voucher" , key = loc_name [2 ] }) },
503+ }))
504+ print (localize ({
505+ type = " variable" ,
506+ key = " cry_trade_add" ,
507+ vars = { localize ({ type = " name_text" , set = " Voucher" , key = loc_name [3 ] }) },
508+ }))
438509 end ,
439510}
440511local replica = {
0 commit comments