@@ -320,14 +320,19 @@ local exponentia = {
320320 end
321321 if context .forcetrigger then
322322 card .ability .extra .Emult = card .ability .extra .Emult + card .ability .extra .Emult_mod
323+ local msg = SMODS .scale_card (card , {
324+ ref_table = card .ability .extra ,
325+ ref_value = " Emult" ,
326+ scalar_value = " Emult_mod"
327+ })
323328 return {
324- message = localize ({
329+ message = not msg and localize ({
325330 type = " variable" ,
326331 key = " a_powmult" ,
327332 vars = {
328333 number_format (card .ability .extra .Emult ),
329334 },
330- }),
335+ }) or ( type ( msg ) == " string " and msg ) or nil ,
331336 Emult_mod = lenient_bignum (card .ability .extra .Emult ),
332337 colour = G .C .DARK_EDITION ,
333338 }
@@ -367,13 +372,20 @@ local exponentia = {
367372 for _ , v in pairs (find_joker (" cry-Exponentia" )) do
368373 local old = v .ability .extra .Emult
369374 v .ability .extra .Emult = lenient_bignum (to_big (v .ability .extra .Emult ) + v .ability .extra .Emult_mod )
370- card_eval_status_text (v , " extra" , nil , nil , nil , {
371- message = localize ({
372- type = " variable" ,
373- key = " a_powmult" ,
374- vars = { number_format (v .ability .extra .Emult ) },
375- }),
375+ local msg = SMODS .scale_card (card , {
376+ ref_table = card .ability .extra ,
377+ ref_value = " Emult" ,
378+ scalar_value = " Emult_mod"
376379 })
380+ if not msg or type (msg ) == " string" then
381+ card_eval_status_text (v , " extra" , nil , nil , nil , {
382+ message = localize ({
383+ type = " variable" ,
384+ key = " a_powmult" ,
385+ vars = { number_format (v .ability .extra .Emult ) },
386+ }),
387+ })
388+ end
377389 end
378390 end
379391 return ret
@@ -645,14 +657,21 @@ local crustulum = {
645657 calculate = function (self , card , context )
646658 if context .reroll_shop and not context .blueprint then
647659 card .ability .extra .chips = lenient_bignum (to_big (card .ability .extra .chips ) + card .ability .extra .chip_mod )
648- card_eval_status_text (card , " extra" , nil , nil , nil , {
649- message = localize ({
650- type = " variable" ,
651- key = " a_chips" ,
652- vars = { number_format (card .ability .extra .chips ) },
653- }),
654- colour = G .C .CHIPS ,
660+ local msg = SMODS .scale_card (card , {
661+ ref_table = card .ability .extra ,
662+ ref_value = " chips" ,
663+ scalar_value = " chip_mod"
655664 })
665+ if not msg or type (msg ) == " string" then
666+ card_eval_status_text (card , " extra" , nil , nil , nil , {
667+ message = msg or localize ({
668+ type = " variable" ,
669+ key = " a_chips" ,
670+ vars = { number_format (card .ability .extra .chips ) },
671+ }),
672+ colour = G .C .CHIPS ,
673+ })
674+ end
656675 return nil , true
657676 end
658677 if context .joker_main and to_big (card .ability .extra .chips ) > to_big (0 ) then
@@ -667,12 +686,17 @@ local crustulum = {
667686 end
668687 if context .forcetrigger then
669688 card .ability .extra .chips = lenient_bignum (to_big (card .ability .extra .chips ) + card .ability .extra .chip_mod )
689+ local msg = SMODS .scale_card (card , {
690+ ref_table = card .ability .extra ,
691+ ref_value = " chips" ,
692+ scalar_value = " chip_mod"
693+ })
670694 return {
671- message = localize ({
695+ message = not msg and localize ({
672696 type = " variable" ,
673697 key = " a_chips" ,
674698 vars = { number_format (card .ability .extra .chips ) },
675- }),
699+ }) or ( type ( msg ) == " string " and msg ) or nil ,
676700 chip_mod = lenient_bignum (card .ability .extra .chips ),
677701 }
678702 end
@@ -737,15 +761,19 @@ local primus = {
737761 end
738762 end
739763 if check then
740- card .ability .extra .Emult =
741- lenient_bignum (to_big (card .ability .extra .Emult ) + card .ability .extra .Emult_mod )
764+ card .ability .extra .Emult = lenient_bignum (to_big (card .ability .extra .Emult ) + card .ability .extra .Emult_mod )
765+ local msg = SMODS .scale_card (card , {
766+ ref_table = card .ability .extra ,
767+ ref_value = " Emult" ,
768+ scalar_value = " Emult_mod"
769+ })
742770 card .children .floating_sprite :set_sprite_pos ({ x = 8 , y = 6 })
743- return {
744- card_eval_status_text ( card , " extra " , nil , nil , nil , {
745- message = localize (" k_upgrade_ex" ),
771+ if not msg or type ( msg ) == " string " then
772+ return {
773+ message = msg or localize (" k_upgrade_ex" ),
746774 colour = G .C .DARK_EDITION ,
747- }),
748- }
775+ }
776+ end
749777 end
750778 end
751779 if context .joker_main and (to_big (card .ability .extra .Emult ) > to_big (1 )) then
@@ -767,14 +795,19 @@ local primus = {
767795 end
768796 if context .forcetrigger then
769797 card .ability .extra .Emult = lenient_bignum (to_big (card .ability .extra .Emult ) + card .ability .extra .Emult_mod )
798+ local msg = SMODS .scale_card (card , {
799+ ref_table = card .ability .extra ,
800+ ref_value = " Emult" ,
801+ scalar_value = " Emult_mod"
802+ })
770803 return {
771- message = localize ({
804+ message = not msg and localize ({
772805 type = " variable" ,
773806 key = " a_powmult" ,
774807 vars = {
775808 number_format (card .ability .extra .Emult ),
776809 },
777- }),
810+ }) or ( type ( msg ) == " string " and msg ) or nil ,
778811 Emult_mod = lenient_bignum (card .ability .extra .Emult ),
779812 colour = G .C .DARK_EDITION ,
780813 }
@@ -819,10 +852,17 @@ local scalae = {
819852 or context .forcetrigger
820853 then
821854 card .ability .extra .scale = lenient_bignum (to_big (card .ability .extra .scale ) + card .ability .extra .scale_mod )
822- return {
823- message = localize (" k_upgrade_ex" ),
824- colour = G .C .DARK_EDITION ,
825- }
855+ local msg = SMODS .scale_card (card , {
856+ ref_table = card .ability .extra ,
857+ ref_value = " scale" ,
858+ scalar_value = " scale_mod"
859+ })
860+ if not msg or type (msg ) == " string" then
861+ return {
862+ message = msg or localize (" k_upgrade_ex" ),
863+ colour = G .C .DARK_EDITION ,
864+ }
865+ end
826866 end
827867 end ,
828868 calc_scaling = function (self , card , other , current_scaling , current_scalar , args )
@@ -930,8 +970,12 @@ local stella_mortis = {
930970 quaota = planet_to_destroy .ability .immutable and planet_to_destroy .ability .immutable .overflow_amount
931971 end
932972 planet_to_destroy .getting_sliced = true
933- card .ability .extra .Emult =
934- lenient_bignum (card .ability .extra .Emult + to_big (card .ability .extra .Emult_mod ) * quota )
973+ card .ability .extra .Emult = lenient_bignum (card .ability .extra .Emult + to_big (card .ability .extra .Emult_mod ) * quota )
974+ local msg = SMODS .scale_card (card , {
975+ ref_table = card .ability .extra ,
976+ ref_value = " Emult" ,
977+ scalar_value = " Emult_mod"
978+ })
935979 G .E_MANAGER :add_event (Event ({
936980 func = function ()
937981 (context .blueprint_card or card ):juice_up (0.8 , 0.8 )
@@ -940,9 +984,9 @@ local stella_mortis = {
940984 end ,
941985 }))
942986 planet_to_destroy .dissolve = 0 -- timing issues related to crossmod stuff
943- if not (context .blueprint_card or self ).getting_sliced then
987+ if not (context .blueprint_card or self ).getting_sliced and ( not msg or type ( msg ) == " string " ) then
944988 card_eval_status_text ((context .blueprint_card or card ), " extra" , nil , nil , nil , {
945- message = localize ({
989+ message = msg or localize ({
946990 type = " variable" ,
947991 key = " a_powmult" ,
948992 vars = {
@@ -1314,9 +1358,14 @@ local energia = {
13141358 local value = # G .GAME .tags or 0
13151359 local t = to_number (math.min (card .ability .immutable .max_tags - value , card .ability .extra .tags ))
13161360 card .ability .extra .tags = lenient_bignum (to_big (card .ability .extra .tags ) + card .ability .extra .tag_mod )
1317- if t > 0 then
1361+ local msg = SMODS .scale_card (card , {
1362+ ref_table = card .ability .extra ,
1363+ ref_value = " tags" ,
1364+ scalar_value = " tag_mod"
1365+ })
1366+ if t > 0 and (not msg or type (msg ) == " string" ) then
13181367 card_eval_status_text (card , " extra" , nil , nil , nil , {
1319- message = localize ({
1368+ message = msg or localize ({
13201369 type = " variable" ,
13211370 key = card .ability .extra .tags == 1 and " a_tag" or " a_tags" ,
13221371 vars = { t },
@@ -1328,6 +1377,11 @@ local energia = {
13281377 end
13291378 if context .forcetrigger then
13301379 card .ability .extra .tags = lenient_bignum (to_big (card .ability .extra .tags ) + card .ability .extra .tag_mod )
1380+ local msg = SMODS .scale_card (card , {
1381+ ref_table = card .ability .extra ,
1382+ ref_value = " tags" ,
1383+ scalar_value = " tag_mod"
1384+ })
13311385 end
13321386 end ,
13331387 cry_credits = {
@@ -1479,12 +1533,24 @@ local duplicare = {
14791533 )
14801534 then
14811535 card .ability .extra .Xmult = lenient_bignum (to_big (card .ability .extra .Xmult ) + card .ability .extra .Xmult_mod )
1482- card_eval_status_text (card , " extra" , nil , nil , nil , { message = localize (" k_upgrade_ex" ) })
1536+ local msg = SMODS .scale_card (card , {
1537+ ref_table = card .ability .extra ,
1538+ ref_value = " Xmult" ,
1539+ scalar_value = " Xmult_mod"
1540+ })
1541+ if not msg or type (msg ) == " string" then
1542+ card_eval_status_text (card , " extra" , nil , nil , nil , { message = msg or localize (" k_upgrade_ex" ) })
1543+ end
14831544 end
14841545 if (context .joker_main and (to_big (card .ability .extra .Xmult ) > to_big (1 ))) or context .forcetrigger then
14851546 if context .forcetrigger then
14861547 card .ability .extra .Xmult =
14871548 lenient_bignum (to_big (card .ability .extra .Xmult ) + card .ability .extra .Xmult_mod )
1549+ local msg = SMODS .scale_card (card , {
1550+ ref_table = card .ability .extra ,
1551+ ref_value = " Xmult" ,
1552+ scalar_value = " Xmult_mod"
1553+ })
14881554 end
14891555 return {
14901556 message = localize ({
0 commit comments