@@ -210,10 +210,12 @@ local googol_play = {
210210 },
211211 },
212212 loc_vars = function (self , info_queue , card )
213+ local num , denom =
214+ SMODS .get_probability_vars (card , 1 , card and card .ability .extra .odds or self .config .extra .odds )
213215 return {
214216 vars = {
215- cry_prob ( card . ability . cry_prob , card . ability . extra . odds , card . ability . cry_rigged ) ,
216- card . ability . extra . odds ,
217+ num ,
218+ denom ,
217219 number_format (card .ability .extra .Xmult ),
218220 number_format (card .ability .extra .Xmult_payout ),
219221 },
@@ -222,9 +224,13 @@ local googol_play = {
222224 calculate = function (self , card , context )
223225 if context .joker_main then
224226 if
225- pseudorandom (" cry_googol_play" )
226- < cry_prob (card .ability .cry_prob , card .ability .extra .odds , card .ability .cry_rigged )
227- / card .ability .extra .odds
227+ context .joker_main
228+ and SMODS .pseudorandom_probability (
229+ card ,
230+ " cry_googol_play" ,
231+ 1 ,
232+ card and card .ability .extra .odds or self .config .extra .odds
233+ )
228234 then
229235 return {
230236 message = localize ({
@@ -883,10 +889,12 @@ local boredom = {
883889 cost = 14 ,
884890 blueprint_compat = true ,
885891 loc_vars = function (self , info_queue , card )
892+ local num , denom =
893+ SMODS .get_probability_vars (card , 1 , card and card .ability .extra .odds or self .config .extra .odds )
886894 return {
887895 vars = {
888- cry_prob ( card . ability . cry_prob , card . ability . extra . odds , card . ability . cry_rigged ) ,
889- card . ability . extra . odds ,
896+ num ,
897+ denom ,
890898 },
891899 }
892900 end ,
@@ -912,9 +920,12 @@ local boredom = {
912920 and card .cry_boredom_marked == context .other_card
913921 then
914922 if
915- pseudorandom (" cry_boredom_joker" )
916- < cry_prob (card .ability .cry_prob , card .ability .extra .odds , card .ability .cry_rigged )
917- / card .ability .extra .odds
923+ SMODS .pseudorandom_element (
924+ card ,
925+ " cry_boredom_joker" ,
926+ 1 ,
927+ card and card .ability .extra .odds or self .config .extra .odds
928+ )
918929 then
919930 return {
920931 message = localize (" k_again_ex" ),
@@ -928,8 +939,12 @@ local boredom = {
928939 if
929940 context .repetition
930941 and context .cardarea == G .play
931- and pseudorandom (" cry_boredom_card" )
932- < cry_prob (card .ability .cry_prob , card .ability .extra .odds , card .ability .cry_rigged ) / card .ability .extra .odds
942+ and SMODS .pseudorandom_element (
943+ card ,
944+ " cry_boredom_card" ,
945+ 1 ,
946+ card and card .ability .extra .odds or self .config .extra .odds
947+ )
933948 then
934949 return {
935950 message = localize (" k_again_ex" ),
@@ -1482,10 +1497,12 @@ local bonusjoker = {
14821497 enhancement_gate = " m_bonus" ,
14831498 loc_vars = function (self , info_queue , card )
14841499 info_queue [# info_queue + 1 ] = G .P_CENTERS .m_bonus
1500+ local num , denom =
1501+ SMODS .get_probability_vars (card , 1 , card and card .ability .extra .odds or self .config .extra .odds )
14851502 return {
14861503 vars = {
1487- cry_prob ( card . ability . cry_prob , card . ability . extra . odds , card . ability . cry_rigged ) ,
1488- card . ability . extra . odds ,
1504+ num ,
1505+ denom ,
14891506 number_format (math.min (card .ability .extra .add , card .ability .immutable .max )),
14901507 },
14911508 }
@@ -1495,8 +1512,12 @@ local bonusjoker = {
14951512 if context .individual and context .cardarea == G .play then
14961513 if SMODS .has_enhancement (context .other_card , " m_bonus" ) then
14971514 if
1498- pseudorandom (" bonusjoker" )
1499- < cry_prob (card .ability .cry_prob , card .ability .extra .odds , card .ability .cry_rigged ) / card .ability .extra .odds
1515+ SMODS .pseudorandom_probability (
1516+ card ,
1517+ " bonusjoker" ,
1518+ 1 ,
1519+ card and card .ability .extra .odds or self .config .extra .odds
1520+ )
15001521 and card .ability .immutable .check < 2
15011522 and not context .retrigger_joker
15021523 then
@@ -1599,10 +1620,12 @@ local multjoker = {
15991620 loc_vars = function (self , info_queue , card )
16001621 info_queue [# info_queue + 1 ] = G .P_CENTERS .m_mult
16011622 info_queue [# info_queue + 1 ] = G .P_CENTERS .c_cryptid
1623+ local num , denom =
1624+ SMODS .get_probability_vars (card , 1 , card and card .ability .extra .odds or self .config .extra .odds )
16021625 return {
16031626 vars = {
1604- cry_prob ( card . ability . cry_prob , card . ability . extra . odds , card . ability . cry_rigged ) ,
1605- card . ability . extra . odds ,
1627+ num ,
1628+ denom ,
16061629 },
16071630 }
16081631 end ,
@@ -1614,9 +1637,12 @@ local multjoker = {
16141637 and # G .consumeables .cards + G .GAME .consumeable_buffer < G .consumeables .config .card_limit
16151638 then
16161639 if
1617- pseudorandom (" multjoker" )
1618- < cry_prob (card .ability .cry_prob , card .ability .extra .odds , card .ability .cry_rigged )
1619- / card .ability .extra .odds
1640+ SMODS .pseudorandom_probability (
1641+ card ,
1642+ " multjoker" ,
1643+ 1 ,
1644+ card and card .ability .extra .odds or self .config .extra .odds
1645+ )
16201646 then
16211647 G .GAME .consumeable_buffer = G .GAME .consumeable_buffer + 1
16221648 G .E_MANAGER :add_event (Event ({
0 commit comments