From 8cfa121637d08e5447531d2a4cd2680c56b268e8 Mon Sep 17 00:00:00 2001 From: vitellaryjr <43586575+vitellaryjr@users.noreply.github.com> Date: Thu, 18 Jun 2026 20:03:05 -0700 Subject: [PATCH 1/2] new smods stuff --- content/blind/coda.lua | 3 ++ content/blind/flat.lua | 4 +++ content/blind/glissando.lua | 4 +++ content/blind/half.lua | 3 ++ content/blind/hold.lua | 4 +++ content/blind/misty_bass.lua | 3 ++ content/blind/natural.lua | 4 +++ content/blind/quarter.lua | 4 +++ content/blind/rest.lua | 17 ++++++++- content/blind/sharp.lua | 4 +++ content/blind/taupe_treble.lua | 4 +++ content/blind/whole.lua | 4 +++ content/booster/ego_gift_normal_1.lua | 4 +++ content/booster/minor_arcana_jumbo_1.lua | 4 +++ content/booster/minor_arcana_jumbo_2.lua | 4 +++ content/booster/minor_arcana_mega.lua | 4 +++ content/booster/minor_arcana_mega_2.lua | 4 +++ content/booster/minor_arcana_normal_1.lua | 4 +++ content/booster/minor_arcana_normal_2.lua | 4 +++ content/booster/minor_arcana_normal_3.lua | 4 +++ content/booster/minor_arcana_normal_4.lua | 4 +++ content/edition/dichrome.lua | 4 +++ content/ego_gift/blue_lighter.lua | 16 ++++++--- content/ego_gift/broken_glasses.lua | 13 +++++-- content/ego_gift/chalice_of_trickle_down.lua | 5 +++ content/ego_gift/coffee_and_cranes.lua | 11 ++++-- content/ego_gift/dark_vestige.lua | 1 + content/ego_gift/death_seeker.lua | 5 +++ content/ego_gift/decamillennial_stewpot.lua | 4 +++ content/ego_gift/disk_fragment.lua | 6 ++++ content/ego_gift/downpour.lua | 11 ++++-- content/ego_gift/fiery_down.lua | 4 +++ content/ego_gift/fluorescent_lamp.lua | 16 ++++++--- content/ego_gift/golden_bough.lua | 16 +++++++-- content/ego_gift/imposed_weight.lua | 4 +++ content/ego_gift/lightning_rod.lua | 4 +++ content/ego_gift/nebulizer.lua | 12 +++++-- content/ego_gift/patrolling_flashlight.lua | 26 ++++++++------ content/ego_gift/pendant_of_nostalgia.lua | 5 +++ content/ego_gift/phlebotomy_pack.lua | 11 ++++-- content/ego_gift/ragged_umbrella.lua | 14 +++++--- content/ego_gift/rusty_coin.lua | 4 +++ content/ego_gift/smokes_and_wires.lua | 12 +++++-- content/ego_gift/thrill.lua | 35 +++++++++++++------ content/ego_gift/tomorrow_fortune.lua | 12 +++++-- content/enhancement/antique.lua | 4 +++ content/enhancement/bandaged.lua | 5 +++ content/enhancement/ceramic.lua | 6 +++- content/enhancement/domino.lua | 6 ++++ content/enhancement/sleeved.lua | 5 +++ content/enhancement/soaked.lua | 10 +++++- content/enhancement/stained.lua | 5 +++ content/enhancement/wrapped.lua | 3 ++ content/joker/57_leaf_clover.lua | 8 +++-- content/joker/allinjest/moon_waltz.lua | 1 + content/joker/ampersand.lua | 3 +- content/joker/apple.lua | 1 + content/joker/as_above_so_below.lua | 5 +-- content/joker/backpack.lua | 2 ++ content/joker/basic_energy.lua | 4 +-- content/joker/big_misser.lua | 3 +- content/joker/blue_marble.lua | 1 + content/joker/chaplin.lua | 3 +- content/joker/da_capo.lua | 3 +- content/joker/ddakji.lua | 4 ++- content/joker/deviled_egg.lua | 1 + content/joker/emf_reader.lua | 3 +- content/joker/everything_must_go.lua | 3 +- content/joker/festive_joker.lua | 1 + content/joker/first_contact.lua | 1 + content/joker/fodder.lua | 3 +- content/joker/full_moon.lua | 1 + content/joker/furioso.lua | 20 ++++++----- content/joker/ghost_cola.lua | 1 + content/joker/giga_size.lua | 13 ++++--- content/joker/great_wave.lua | 3 +- content/joker/hamsa.lua | 3 +- content/joker/insurance_policy.lua | 3 +- content/joker/jestrica.lua | 13 +++---- .../joker/jimbos_joyous_joker_jamboree.lua | 1 + content/joker/joker_cd_i.lua | 1 + content/joker/kintsugi_joker.lua | 5 +-- content/joker/master_plan.lua | 3 +- content/joker/mismatched_sock.lua | 11 +++--- content/joker/oracle.lua | 3 +- content/joker/oujia_board.lua | 4 ++- content/joker/paralyzed.lua | 3 +- content/joker/park_postcard.lua | 11 +++--- content/joker/pedrillo.lua | 1 + content/joker/photocopy.lua | 3 +- content/joker/planchette.lua | 3 +- content/joker/pool_table.lua | 1 + content/joker/pride_flag.lua | 14 ++++---- content/joker/protocol.lua | 3 +- content/joker/pyrite.lua | 1 + content/joker/sacrificial_lamb.lua | 4 +-- content/joker/sake_cup.lua | 1 + content/joker/shooting_star.lua | 1 + content/joker/shopkeep.lua | 1 + content/joker/shopping_center.lua | 3 +- content/joker/silent_assassin.lua | 4 +-- content/joker/small_scale_onshore_wind.lua | 11 +++--- content/joker/solar_eclipse.lua | 3 +- content/joker/solar_system.lua | 4 ++- content/joker/spotty_joker.lua | 4 +-- content/joker/summoning_circle.lua | 1 + content/joker/telamon.lua | 1 + content/joker/the_one_who_waits.lua | 1 + content/joker/the_strongest.lua | 1 + content/joker/tian_tian.lua | 4 +-- content/joker/tome.lua | 4 ++- content/joker/touch_tone_joker.lua | 4 ++- content/joker/triple_moon_goddess.lua | 1 + content/joker/ultra_rare.lua | 1 + content/joker/unholy_alliance.lua | 5 ++- content/joker/watermelon.lua | 4 +-- content/minor_arcana/ace_of_cups.lua | 4 +++ content/minor_arcana/ace_of_pentacles.lua | 5 +++ content/minor_arcana/ace_of_swords.lua | 5 +++ content/minor_arcana/ace_of_wands.lua | 4 +++ content/minor_arcana/eight_of_cups.lua | 4 +++ content/minor_arcana/eight_of_pentacles.lua | 6 ++++ content/minor_arcana/eight_of_swords.lua | 4 +++ content/minor_arcana/eight_of_wands.lua | 7 ++++ content/minor_arcana/five_of_cups.lua | 4 +++ content/minor_arcana/five_of_pentacles.lua | 4 +++ content/minor_arcana/five_of_swords.lua | 6 ++++ content/minor_arcana/five_of_wands.lua | 4 +++ content/minor_arcana/four_of_cups.lua | 7 ++++ content/minor_arcana/four_of_pentacles.lua | 30 +++++++++------- content/minor_arcana/four_of_swords.lua | 8 +++++ content/minor_arcana/four_of_wands.lua | 4 +++ content/minor_arcana/king_of_cups.lua | 4 +++ content/minor_arcana/king_of_pentacles.lua | 5 +++ content/minor_arcana/king_of_swords.lua | 11 +++--- content/minor_arcana/king_of_wands.lua | 5 +++ content/minor_arcana/knight_of_cups.lua | 4 +++ content/minor_arcana/knight_of_pentacles.lua | 5 +++ content/minor_arcana/knight_of_swords.lua | 6 ++++ content/minor_arcana/knight_of_wands.lua | 4 +++ content/minor_arcana/nine_of_cups.lua | 6 ++++ content/minor_arcana/nine_of_pentacles.lua | 4 +++ content/minor_arcana/nine_of_swords.lua | 4 +++ content/minor_arcana/nine_of_wands.lua | 4 +++ content/minor_arcana/page_of_cups.lua | 4 +++ content/minor_arcana/page_of_pentacles.lua | 4 +++ content/minor_arcana/page_of_swords.lua | 4 +++ content/minor_arcana/page_of_wands.lua | 4 +++ content/minor_arcana/queen_of_cups.lua | 4 +++ content/minor_arcana/queen_of_pentacles.lua | 4 +++ content/minor_arcana/queen_of_swords.lua | 5 +++ content/minor_arcana/queen_of_wands.lua | 5 +++ content/minor_arcana/seven_of_cups.lua | 4 +++ content/minor_arcana/seven_of_pentacles.lua | 4 +++ content/minor_arcana/seven_of_swords.lua | 4 +++ content/minor_arcana/seven_of_wands.lua | 4 +++ content/minor_arcana/six_of_cups.lua | 3 ++ content/minor_arcana/six_of_pentacles.lua | 4 +++ content/minor_arcana/six_of_swords.lua | 4 +++ content/minor_arcana/six_of_wands.lua | 4 +++ content/minor_arcana/ten_of_cups.lua | 5 +++ content/minor_arcana/ten_of_pentacles.lua | 13 ++++--- content/minor_arcana/ten_of_swords.lua | 5 +++ content/minor_arcana/ten_of_wands.lua | 6 ++++ content/minor_arcana/three_of_cups.lua | 4 +++ content/minor_arcana/three_of_pentacles.lua | 4 +++ content/minor_arcana/three_of_swords.lua | 4 +++ content/minor_arcana/three_of_wands.lua | 4 +++ content/minor_arcana/two_of_cups.lua | 4 +++ content/minor_arcana/two_of_pentacles.lua | 3 ++ content/minor_arcana/two_of_swords.lua | 4 +++ content/minor_arcana/two_of_wands.lua | 6 ++++ content/paperclip/black_clip.lua | 3 ++ content/paperclip/blue_clip.lua | 3 ++ content/paperclip/gold_clip.lua | 3 ++ content/paperclip/green_clip.lua | 5 +++ content/paperclip/orange_clip.lua | 3 ++ content/paperclip/pink_clip.lua | 3 ++ content/paperclip/platinum_clip.lua | 3 ++ content/paperclip/purple_clip.lua | 6 ++++ content/paperclip/red_clip.lua | 3 ++ content/paperclip/white_clip.lua | 4 +++ content/paperclip/yellow_clip.lua | 6 ++++ content/planet/haumea.lua | 5 +++ content/planet/makemake.lua | 5 +++ content/planet/quaoar.lua | 5 +++ content/planet/sedna.lua | 5 +++ content/spectrals/apostle_of_cups.lua | 6 ++++ content/spectrals/apostle_of_pentacles.lua | 4 +++ content/spectrals/apostle_of_swords.lua | 4 +++ content/spectrals/apostle_of_wands.lua | 4 +++ content/tag/angel_investment.lua | 3 ++ content/tag/breaking.lua | 3 ++ content/tag/dichrome.lua | 5 +++ content/tag/divination.lua | 3 ++ content/tag/high_risk.lua | 5 +++ content/voucher/celtic_cross.lua | 5 +++ content/voucher/rabbit_protocol.lua | 6 ++++ content/voucher/second_trumpet.lua | 8 ++++- content/voucher/soothsay.lua | 5 +++ utilities/definitions/misc.lua | 1 - utilities/misc_functions.lua | 2 +- 202 files changed, 875 insertions(+), 173 deletions(-) diff --git a/content/blind/coda.lua b/content/blind/coda.lua index 9585897a..75203e87 100644 --- a/content/blind/coda.lua +++ b/content/blind/coda.lua @@ -3,6 +3,9 @@ SMODS.Blind { boss = { min = 1, }, + attributes = { + 'position' + }, boss_colour = HEX('bea5c4'), atlas = 'music_blinds_atlas', pos = { y = 1 }, diff --git a/content/blind/flat.lua b/content/blind/flat.lua index d19e8c14..23e0863f 100644 --- a/content/blind/flat.lua +++ b/content/blind/flat.lua @@ -3,6 +3,10 @@ SMODS.Blind { boss = { min = 1, }, + attributes = { + 'modify_card', + 'rank' + }, in_pool = function(self) if G.GAME.bosses_used.bl_paperback_sharp == 0 then diff --git a/content/blind/glissando.lua b/content/blind/glissando.lua index e1b72bcc..8d9e0415 100644 --- a/content/blind/glissando.lua +++ b/content/blind/glissando.lua @@ -3,6 +3,10 @@ SMODS.Blind { boss = { min = 3 }, + attributes = { + 'debuff', + 'rank' + }, mult = 2, boss_colour = HEX('E689CD'), atlas = 'music_blinds_atlas', diff --git a/content/blind/half.lua b/content/blind/half.lua index b36c898e..17c8435e 100644 --- a/content/blind/half.lua +++ b/content/blind/half.lua @@ -3,6 +3,9 @@ SMODS.Blind { boss = { min = 2 }, + attributes = { + 'mod_chance' + }, boss_colour = HEX('D1AB88'), atlas = 'music_blinds_atlas', pos = { y = 6 }, diff --git a/content/blind/hold.lua b/content/blind/hold.lua index 86438fa6..e874ce93 100644 --- a/content/blind/hold.lua +++ b/content/blind/hold.lua @@ -3,6 +3,10 @@ SMODS.Blind { boss = { min = 3 }, + attributes = { + 'face_down', + 'hands' + }, mult = 2, boss_colour = HEX('D19EC3'), atlas = 'music_blinds_atlas', diff --git a/content/blind/misty_bass.lua b/content/blind/misty_bass.lua index a04abb1b..28085990 100644 --- a/content/blind/misty_bass.lua +++ b/content/blind/misty_bass.lua @@ -3,6 +3,9 @@ SMODS.Blind { boss = { showdown = true, min = 1 }, + attributes = { + 'position' + }, dollars = 8, mult = 2, boss_colour = HEX("ABA89D"), diff --git a/content/blind/natural.lua b/content/blind/natural.lua index af388a45..ab610004 100644 --- a/content/blind/natural.lua +++ b/content/blind/natural.lua @@ -3,6 +3,10 @@ SMODS.Blind { boss = { min = 2, }, + attributes = { + 'debuff', + 'hand_type' + }, mult = 1, boss_colour = HEX('926fcd'), atlas = 'music_blinds_atlas', diff --git a/content/blind/quarter.lua b/content/blind/quarter.lua index 40ba9ff1..6d47ca77 100644 --- a/content/blind/quarter.lua +++ b/content/blind/quarter.lua @@ -3,6 +3,10 @@ SMODS.Blind { boss = { min = 1 }, + attributes = { + 'debuff', + 'chance' + }, boss_colour = HEX("E27A7A"), atlas = 'music_blinds_atlas', pos = { y = 5 }, diff --git a/content/blind/rest.lua b/content/blind/rest.lua index 15ad7e3d..3a14ff88 100644 --- a/content/blind/rest.lua +++ b/content/blind/rest.lua @@ -3,6 +3,21 @@ SMODS.Blind { boss = { min = 3 }, + attributes = { + 'face_down', + 'chance', + 'rank', + 'two', + 'three', + 'four', + 'five', + 'six', + 'seven', + 'eight', + 'nine', + 'ten', + 'ace' -- apparently + }, mult = 1, boss_colour = HEX('90CDAF'), atlas = 'music_blinds_atlas', @@ -43,7 +58,7 @@ SMODS.Blind { stay_flipped = function(self, area, card) if area == G.hand then if not card:is_face() and not SMODS.has_no_rank(card) and - PB_UTIL.chance(card, 'rest', self.chance_numerator, self.chance_denominator) then + PB_UTIL.chance(card, 'rest', self.chance_numerator, self.chance_denominator) then return true end end diff --git a/content/blind/sharp.lua b/content/blind/sharp.lua index 3d023f15..1bdc1469 100644 --- a/content/blind/sharp.lua +++ b/content/blind/sharp.lua @@ -3,6 +3,10 @@ SMODS.Blind { boss = { min = 1, }, + attributes = { + 'modify_card', + 'rank' + }, in_pool = function(self) if G.GAME.bosses_used.bl_paperback_flat == 0 then return true diff --git a/content/blind/taupe_treble.lua b/content/blind/taupe_treble.lua index be90f270..f693eca8 100644 --- a/content/blind/taupe_treble.lua +++ b/content/blind/taupe_treble.lua @@ -3,6 +3,10 @@ SMODS.Blind { boss = { showdown = true, min = 1 }, + attributes = { + 'debuff', + 'enhancements' + }, dollars = 8, in_pool = function(self) if G.playing_cards then diff --git a/content/blind/whole.lua b/content/blind/whole.lua index ef7b69b7..b6e7d55b 100644 --- a/content/blind/whole.lua +++ b/content/blind/whole.lua @@ -3,6 +3,10 @@ SMODS.Blind { boss = { min = 3 }, + attributes = { + 'debuff', + 'rank' + }, mult = 2, boss_colour = HEX('B7C977'), atlas = 'music_blinds_atlas', diff --git a/content/booster/ego_gift_normal_1.lua b/content/booster/ego_gift_normal_1.lua index 3a5ad83f..39809bd0 100644 --- a/content/booster/ego_gift_normal_1.lua +++ b/content/booster/ego_gift_normal_1.lua @@ -6,6 +6,10 @@ PB_UTIL.EGO_GiftBooster { extra = 2, choose = 1 }, + attributes = { + 'ego_gift', + 'consumable' + }, weight = 1, cost = 4, discovered = false, diff --git a/content/booster/minor_arcana_jumbo_1.lua b/content/booster/minor_arcana_jumbo_1.lua index b9951cc0..313ff102 100644 --- a/content/booster/minor_arcana_jumbo_1.lua +++ b/content/booster/minor_arcana_jumbo_1.lua @@ -6,6 +6,10 @@ PB_UTIL.MinorArcanaBooster { extra = 5, choose = 1 }, + attributes = { + 'minor_arcana', + 'consumable' + }, weight = 1, cost = 6, discovered = false, diff --git a/content/booster/minor_arcana_jumbo_2.lua b/content/booster/minor_arcana_jumbo_2.lua index 4a3becee..23b7753b 100644 --- a/content/booster/minor_arcana_jumbo_2.lua +++ b/content/booster/minor_arcana_jumbo_2.lua @@ -6,6 +6,10 @@ PB_UTIL.MinorArcanaBooster { extra = 5, choose = 1 }, + attributes = { + 'minor_arcana', + 'consumable' + }, weight = 1, cost = 6, discovered = false, diff --git a/content/booster/minor_arcana_mega.lua b/content/booster/minor_arcana_mega.lua index 3fa7fe61..683b8f92 100644 --- a/content/booster/minor_arcana_mega.lua +++ b/content/booster/minor_arcana_mega.lua @@ -6,6 +6,10 @@ PB_UTIL.MinorArcanaBooster { extra = 5, choose = 2 }, + attributes = { + 'minor_arcana', + 'consumable' + }, weight = 0.25, cost = 8, discovered = false, diff --git a/content/booster/minor_arcana_mega_2.lua b/content/booster/minor_arcana_mega_2.lua index 62a8acfe..f04f68b0 100644 --- a/content/booster/minor_arcana_mega_2.lua +++ b/content/booster/minor_arcana_mega_2.lua @@ -6,6 +6,10 @@ PB_UTIL.MinorArcanaBooster { extra = 5, choose = 2 }, + attributes = { + 'minor_arcana', + 'consumable' + }, weight = 0.25, cost = 8, discovered = false, diff --git a/content/booster/minor_arcana_normal_1.lua b/content/booster/minor_arcana_normal_1.lua index 4e5f7d2c..7cba6e9d 100644 --- a/content/booster/minor_arcana_normal_1.lua +++ b/content/booster/minor_arcana_normal_1.lua @@ -6,6 +6,10 @@ PB_UTIL.MinorArcanaBooster { extra = 3, choose = 1 }, + attributes = { + 'minor_arcana', + 'consumable' + }, weight = 1, cost = 4, discovered = false, diff --git a/content/booster/minor_arcana_normal_2.lua b/content/booster/minor_arcana_normal_2.lua index 80230d94..41614fd5 100644 --- a/content/booster/minor_arcana_normal_2.lua +++ b/content/booster/minor_arcana_normal_2.lua @@ -6,6 +6,10 @@ PB_UTIL.MinorArcanaBooster { extra = 3, choose = 1 }, + attributes = { + 'minor_arcana', + 'consumable' + }, weight = 1, cost = 4, discovered = false, diff --git a/content/booster/minor_arcana_normal_3.lua b/content/booster/minor_arcana_normal_3.lua index 6f8079d6..5ba4e383 100644 --- a/content/booster/minor_arcana_normal_3.lua +++ b/content/booster/minor_arcana_normal_3.lua @@ -6,6 +6,10 @@ PB_UTIL.MinorArcanaBooster { extra = 3, choose = 1 }, + attributes = { + 'minor_arcana', + 'consumable' + }, weight = 1, cost = 4, discovered = false, diff --git a/content/booster/minor_arcana_normal_4.lua b/content/booster/minor_arcana_normal_4.lua index 86a6810d..ab413100 100644 --- a/content/booster/minor_arcana_normal_4.lua +++ b/content/booster/minor_arcana_normal_4.lua @@ -6,6 +6,10 @@ PB_UTIL.MinorArcanaBooster { extra = 3, choose = 1 }, + attributes = { + 'minor_arcana', + 'consumable' + }, weight = 1, cost = 4, discovered = false, diff --git a/content/edition/dichrome.lua b/content/edition/dichrome.lua index d602a321..e10bca69 100644 --- a/content/edition/dichrome.lua +++ b/content/edition/dichrome.lua @@ -14,6 +14,10 @@ SMODS.Edition { config = { amount = 1 }, + attributes = { + 'hands', + 'discard' + }, sound = { sound = 'paperback_dichrome', per = 1, diff --git a/content/ego_gift/blue_lighter.lua b/content/ego_gift/blue_lighter.lua index f418be92..1f73408e 100644 --- a/content/ego_gift/blue_lighter.lua +++ b/content/ego_gift/blue_lighter.lua @@ -5,15 +5,23 @@ PB_UTIL.EGO_Gift { xmult = 1, a_xmult = 0.25 }, + attributes = { + 'destroy_card', + 'consumable', + 'xmult', + 'scaling', + }, atlas = 'ego_gift_atlas', pos = { x = 4, y = 1 }, soul_pos = { x = 4, y = 4 }, ego_loc_vars = function(self, info_queue, card) - return { vars = { - card.ability.a_xmult, - card.ability.xmult - } } + return { + vars = { + card.ability.a_xmult, + card.ability.xmult + } + } end, ego_gift_calc = function(self, card, context) diff --git a/content/ego_gift/broken_glasses.lua b/content/ego_gift/broken_glasses.lua index d59e75d7..e4dbcdf0 100644 --- a/content/ego_gift/broken_glasses.lua +++ b/content/ego_gift/broken_glasses.lua @@ -4,15 +4,22 @@ PB_UTIL.EGO_Gift { sin = 'gloom', odds = 4 }, + attributes = { + 'generation', + 'playing_card', + 'chance', + }, atlas = 'ego_gift_atlas', pos = { x = 4, y = 2 }, soul_pos = { x = 4, y = 5 }, ego_loc_vars = function(self, info_queue, card) local n, d = PB_UTIL.chance_vars(card, nil, 1, card.ability.odds) - return { vars = { - n, d - } } + return { + vars = { + n, d + } + } end, ego_gift_calc = function(self, card, context) if context.remove_playing_cards and #context.removed > 0 and #context.removed <= 2 then diff --git a/content/ego_gift/chalice_of_trickle_down.lua b/content/ego_gift/chalice_of_trickle_down.lua index 88179b4c..f8791e3d 100644 --- a/content/ego_gift/chalice_of_trickle_down.lua +++ b/content/ego_gift/chalice_of_trickle_down.lua @@ -3,6 +3,11 @@ PB_UTIL.EGO_Gift { config = { sin = 'envy', }, + attributes = { + 'economy', + 'rank', + 'boss_blind', + }, atlas = 'ego_gift_atlas', pos = { x = 6, y = 1 }, soul_pos = { x = 6, y = 4 }, diff --git a/content/ego_gift/coffee_and_cranes.lua b/content/ego_gift/coffee_and_cranes.lua index bd8e93f9..b37b48e0 100644 --- a/content/ego_gift/coffee_and_cranes.lua +++ b/content/ego_gift/coffee_and_cranes.lua @@ -4,14 +4,19 @@ PB_UTIL.EGO_Gift { sin = 'lust', dollars = 3, }, + attributes = { + 'economy', + }, atlas = 'ego_gift_atlas', pos = { x = 1, y = 0 }, soul_pos = { x = 1, y = 3 }, ego_loc_vars = function(self, info_queue, card) - return { vars = { - card.ability.dollars - } } + return { + vars = { + card.ability.dollars + } + } end, calc_dollar_bonus = function(self, card) diff --git a/content/ego_gift/dark_vestige.lua b/content/ego_gift/dark_vestige.lua index 610dd09c..6ee5f9df 100644 --- a/content/ego_gift/dark_vestige.lua +++ b/content/ego_gift/dark_vestige.lua @@ -3,6 +3,7 @@ PB_UTIL.EGO_Gift { config = { sin = 'none' }, + attributes = {}, atlas = 'ego_gift_atlas', pos = { x = 7, y = 0 }, soul_pos = { x = 7, y = 3 }, diff --git a/content/ego_gift/death_seeker.lua b/content/ego_gift/death_seeker.lua index 755d67e3..0723c1c8 100644 --- a/content/ego_gift/death_seeker.lua +++ b/content/ego_gift/death_seeker.lua @@ -3,6 +3,11 @@ PB_UTIL.EGO_Gift { config = { sin = 'gluttony', }, + attributes = { + 'mult', + 'enhancements', + 'rank', + }, atlas = 'ego_gift_atlas', pos = { x = 3, y = 2 }, soul_pos = { x = 3, y = 5 }, diff --git a/content/ego_gift/decamillennial_stewpot.lua b/content/ego_gift/decamillennial_stewpot.lua index 2384374f..e469fbf9 100644 --- a/content/ego_gift/decamillennial_stewpot.lua +++ b/content/ego_gift/decamillennial_stewpot.lua @@ -3,6 +3,10 @@ PB_UTIL.EGO_Gift { config = { sin = 'lust', }, + attributes = { + 'hands', + 'destroy_card', + }, atlas = 'ego_gift_atlas', pos = { x = 1, y = 2 }, soul_pos = { x = 1, y = 5 }, diff --git a/content/ego_gift/disk_fragment.lua b/content/ego_gift/disk_fragment.lua index fa5a92fe..744e6d4d 100644 --- a/content/ego_gift/disk_fragment.lua +++ b/content/ego_gift/disk_fragment.lua @@ -4,6 +4,12 @@ PB_UTIL.EGO_Gift { sin = 'gluttony', cards = 2, }, + attributes = { + 'generation', + 'planet', + 'consumable', + 'negative' + }, atlas = 'ego_gift_atlas', pos = { x = 3, y = 1 }, soul_pos = { x = 3, y = 4 }, diff --git a/content/ego_gift/downpour.lua b/content/ego_gift/downpour.lua index 2ad6e3b7..8c46bf1a 100644 --- a/content/ego_gift/downpour.lua +++ b/content/ego_gift/downpour.lua @@ -4,15 +4,20 @@ PB_UTIL.EGO_Gift { sin = 'sloth', blind_mod = 0.05 }, + attributes = { + 'xblindsize', + }, atlas = 'ego_gift_atlas', pos = { x = 2, y = 0 }, soul_pos = { x = 2, y = 3 }, ego_loc_vars = function(self, info_queue, card) - return { vars = { - card.ability.blind_mod * 100, - } } + return { + vars = { + card.ability.blind_mod * 100, + } + } end, ego_gift_calc = function(self, card, context) diff --git a/content/ego_gift/fiery_down.lua b/content/ego_gift/fiery_down.lua index d9d5558e..c6f5841d 100644 --- a/content/ego_gift/fiery_down.lua +++ b/content/ego_gift/fiery_down.lua @@ -5,6 +5,10 @@ PB_UTIL.EGO_Gift { threshold = 15, discarded = 0 }, + attributes = { + 'discard', + 'hand_level' + }, atlas = 'ego_gift_atlas', pos = { x = 1, y = 1 }, soul_pos = { x = 1, y = 4 }, diff --git a/content/ego_gift/fluorescent_lamp.lua b/content/ego_gift/fluorescent_lamp.lua index 57f37996..36ef1198 100644 --- a/content/ego_gift/fluorescent_lamp.lua +++ b/content/ego_gift/fluorescent_lamp.lua @@ -6,6 +6,10 @@ PB_UTIL.EGO_Gift { threshold = 2, total = 1 }, + attributes = { + 'discard', + 'joker_slot' + }, atlas = 'ego_gift_atlas', pos = { x = 5, y = 2 }, soul_pos = { x = 5, y = 5 }, @@ -41,10 +45,12 @@ PB_UTIL.EGO_Gift { else card.ability.total = card.ability.discards end - return { vars = { - card.ability.discards, - card.ability.threshold, - card.ability.total - } } + return { + vars = { + card.ability.discards, + card.ability.threshold, + card.ability.total + } + } end, } diff --git a/content/ego_gift/golden_bough.lua b/content/ego_gift/golden_bough.lua index c38891cb..b4695153 100644 --- a/content/ego_gift/golden_bough.lua +++ b/content/ego_gift/golden_bough.lua @@ -4,6 +4,14 @@ PB_UTIL.EGO_Gift { sin = 'madness', delta = -1, }, + attributes = { + 'generation', + 'ego_gift', + 'consumable', + 'negative', + 'boss_blind', + 'joker_slot' + }, atlas = 'ego_gift_atlas', pos = { x = 7, y = 2 }, soul_pos = { x = 7, y = 5 }, @@ -14,9 +22,11 @@ PB_UTIL.EGO_Gift { soul_rate = 0.001, ego_loc_vars = function(self, info_queue, card) - return { vars = { - card.ability.delta - } } + return { + vars = { + card.ability.delta + } + } end, ego_gift_calc = function(self, card, context) diff --git a/content/ego_gift/imposed_weight.lua b/content/ego_gift/imposed_weight.lua index da8ce00a..3b3b1256 100644 --- a/content/ego_gift/imposed_weight.lua +++ b/content/ego_gift/imposed_weight.lua @@ -4,6 +4,10 @@ PB_UTIL.EGO_Gift { sin = 'wrath', a_rep = 1, }, + attributes = { + 'retrigger', + 'joker_slot' + }, atlas = 'ego_gift_atlas', pos = { x = 0, y = 0 }, soul_pos = { x = 0, y = 3 }, diff --git a/content/ego_gift/lightning_rod.lua b/content/ego_gift/lightning_rod.lua index 96230c9c..a03b77f1 100644 --- a/content/ego_gift/lightning_rod.lua +++ b/content/ego_gift/lightning_rod.lua @@ -4,6 +4,10 @@ PB_UTIL.EGO_Gift { sin = 'envy', odds = 2 }, + attributes = { + 'retrigger', + 'chance' + }, atlas = 'ego_gift_atlas', pos = { x = 6, y = 0 }, soul_pos = { x = 6, y = 3 }, diff --git a/content/ego_gift/nebulizer.lua b/content/ego_gift/nebulizer.lua index 0b7a6cf3..17ca8efe 100644 --- a/content/ego_gift/nebulizer.lua +++ b/content/ego_gift/nebulizer.lua @@ -7,15 +7,21 @@ PB_UTIL.EGO_Gift { odds = 5 } }, + attributes = { + 'xmult', + 'chance' + }, atlas = 'ego_gift_atlas', pos = { x = 5, y = 0 }, soul_pos = { x = 5, y = 3 }, ego_loc_vars = function(self, info_queue, card) local n, d = PB_UTIL.chance_vars(card, nil) - return { vars = { - n, d, card.ability.xmult - } } + return { + vars = { + n, d, card.ability.xmult + } + } end, ego_gift_calc = function(self, card, context) diff --git a/content/ego_gift/patrolling_flashlight.lua b/content/ego_gift/patrolling_flashlight.lua index 0a6ca8de..42f1c837 100644 --- a/content/ego_gift/patrolling_flashlight.lua +++ b/content/ego_gift/patrolling_flashlight.lua @@ -4,6 +4,10 @@ PB_UTIL.EGO_Gift { sin = 'envy', active = true }, + attributes = { + 'generation', + 'consumable' + }, atlas = 'ego_gift_atlas', pos = { x = 6, y = 2 }, soul_pos = { x = 6, y = 5 }, @@ -42,16 +46,18 @@ PB_UTIL.EGO_Gift { ego_gift_calc = function(self, card, context) if context.using_consumeable and card.ability.active and not context.consumeable.ability.paperback_energized then card.ability.active = false - G.E_MANAGER:add_event(Event({ func = function() - -- Doesn't need room - local copy = SMODS.create_card { - key = context.consumeable.config.center.key, - } - copy:add_sticker('paperback_energized', true) - copy:add_to_deck() - G.consumeables:emplace(copy) - return true - end})) + G.E_MANAGER:add_event(Event({ + func = function() + -- Doesn't need room + local copy = SMODS.create_card { + key = context.consumeable.config.center.key, + } + copy:add_sticker('paperback_energized', true) + copy:add_to_deck() + G.consumeables:emplace(copy) + return true + end + })) end if context.end_of_round and G.GAME.blind.boss and context.cardarea == G.consumeables then diff --git a/content/ego_gift/pendant_of_nostalgia.lua b/content/ego_gift/pendant_of_nostalgia.lua index bbdbed8a..43cc5cda 100644 --- a/content/ego_gift/pendant_of_nostalgia.lua +++ b/content/ego_gift/pendant_of_nostalgia.lua @@ -4,6 +4,11 @@ if PB_UTIL.config.minor_arcana_enabled then config = { sin = 'gloom', }, + attributes = { + 'generation', + 'tarot', + 'minor_arcana' + }, atlas = 'ego_gift_atlas', pos = { x = 4, y = 0 }, soul_pos = { x = 4, y = 3 }, diff --git a/content/ego_gift/phlebotomy_pack.lua b/content/ego_gift/phlebotomy_pack.lua index 1ef462bb..6ff11c32 100644 --- a/content/ego_gift/phlebotomy_pack.lua +++ b/content/ego_gift/phlebotomy_pack.lua @@ -4,6 +4,9 @@ PB_UTIL.EGO_Gift { sin = 'wrath', a_hand = 1, }, + attributes = { + 'hands', + }, atlas = 'ego_gift_atlas', pos = { x = 0, y = 1 }, soul_pos = { x = 0, y = 4 }, @@ -29,8 +32,10 @@ PB_UTIL.EGO_Gift { end, ego_loc_vars = function(self, info_queue, card) - return { vars = { - card.ability.a_hand - } } + return { + vars = { + card.ability.a_hand + } + } end, } diff --git a/content/ego_gift/ragged_umbrella.lua b/content/ego_gift/ragged_umbrella.lua index 1d298b86..f7813928 100644 --- a/content/ego_gift/ragged_umbrella.lua +++ b/content/ego_gift/ragged_umbrella.lua @@ -5,16 +5,22 @@ PB_UTIL.EGO_Gift { chip_mod = 5, chips = 0 }, + attributes = { + 'chips', + 'scaling' + }, atlas = 'ego_gift_atlas', pos = { x = 2, y = 2 }, soul_pos = { x = 2, y = 5 }, ego_loc_vars = function(self, info_queue, card) - return { vars = { - card.ability.chip_mod, - card.ability.chips - } } + return { + vars = { + card.ability.chip_mod, + card.ability.chips + } + } end, ego_gift_calc = function(self, card, context) diff --git a/content/ego_gift/rusty_coin.lua b/content/ego_gift/rusty_coin.lua index 1b5a5c99..63cc48a7 100644 --- a/content/ego_gift/rusty_coin.lua +++ b/content/ego_gift/rusty_coin.lua @@ -3,6 +3,10 @@ PB_UTIL.EGO_Gift { config = { sin = 'sloth', }, + attributes = { + 'hands', + 'seals' + }, atlas = 'ego_gift_atlas', pos = { x = 2, y = 1 }, soul_pos = { x = 2, y = 4 }, diff --git a/content/ego_gift/smokes_and_wires.lua b/content/ego_gift/smokes_and_wires.lua index b46e533f..13d40b84 100644 --- a/content/ego_gift/smokes_and_wires.lua +++ b/content/ego_gift/smokes_and_wires.lua @@ -4,6 +4,10 @@ PB_UTIL.EGO_Gift { sin = 'wrath', xmult = 2, }, + attributes = { + 'xmult', + 'hands' + }, atlas = 'ego_gift_atlas', pos = { x = 0, y = 2 }, soul_pos = { x = 0, y = 5 }, @@ -20,8 +24,10 @@ PB_UTIL.EGO_Gift { end, ego_loc_vars = function(self, info_queue, card) - return { vars = { - card.ability.xmult - } } + return { + vars = { + card.ability.xmult + } + } end, } diff --git a/content/ego_gift/thrill.lua b/content/ego_gift/thrill.lua index 350644e6..931cdfb4 100644 --- a/content/ego_gift/thrill.lua +++ b/content/ego_gift/thrill.lua @@ -5,6 +5,11 @@ PB_UTIL.EGO_Gift { a_xmult = 0.25, starting_xmult = 1, }, + attributes = { + 'xmult', + 'discard', + 'hands' + }, atlas = 'ego_gift_atlas', pos = { x = 3, y = 0 }, soul_pos = { x = 3, y = 3 }, @@ -12,25 +17,35 @@ PB_UTIL.EGO_Gift { ego_loc_vars = function(self, info_queue, card) -- Outside Blind if not (G.GAME.blind and G.GAME.blind.in_blind) then - return { vars = { - card.ability.a_xmult, - card.ability.starting_xmult, - } } + return { + vars = { + card.ability.a_xmult, + card.ability.starting_xmult, + } + } end -- In Blind, inactive if not (G.GAME.current_round.hands_played <= 0) then return { - key = self.key..'_inactive', + key = self.key .. '_inactive', vars = { card.ability.a_xmult, }, main_end = { -- from Luchador - {n=G.UIT.C, config={align = "bm", minh = 0.4}, nodes={ - {n=G.UIT.C, config={ref_table = self, align = "m", colour = G.C.RED, r = 0.05, padding = 0.06}, nodes={ - {n=G.UIT.T, config={text = ' '..localize('paperback_inactive')..' ',colour = G.C.UI.TEXT_LIGHT, scale = 0.32*0.9}}, - }} - }} + { + n = G.UIT.C, + config = { align = "bm", minh = 0.4 }, + nodes = { + { + n = G.UIT.C, + config = { ref_table = self, align = "m", colour = G.C.RED, r = 0.05, padding = 0.06 }, + nodes = { + { n = G.UIT.T, config = { text = ' ' .. localize('paperback_inactive') .. ' ', colour = G.C.UI.TEXT_LIGHT, scale = 0.32 * 0.9 } }, + } + } + } + } } } end diff --git a/content/ego_gift/tomorrow_fortune.lua b/content/ego_gift/tomorrow_fortune.lua index 6bb4a790..a8bbcd7a 100644 --- a/content/ego_gift/tomorrow_fortune.lua +++ b/content/ego_gift/tomorrow_fortune.lua @@ -4,14 +4,20 @@ PB_UTIL.EGO_Gift { sin = 'pride', bonus = 1, }, + attributes = { + 'passive', + 'booster' + }, atlas = 'ego_gift_atlas', pos = { x = 5, y = 1 }, soul_pos = { x = 5, y = 4 }, ego_loc_vars = function(self, info_queue, card) - return { vars = { - card.ability.bonus - } } + return { + vars = { + card.ability.bonus + } + } end, ego_add = function(self, card, from_debuff) diff --git a/content/enhancement/antique.lua b/content/enhancement/antique.lua index 06b963ed..b21d74ae 100644 --- a/content/enhancement/antique.lua +++ b/content/enhancement/antique.lua @@ -8,6 +8,10 @@ SMODS.Enhancement { xchips_mod = 0.1 } }, + attributes = { + 'xchips', + 'scaling' + }, loc_vars = function(self, info_queue, card) return { diff --git a/content/enhancement/bandaged.lua b/content/enhancement/bandaged.lua index 9e03a749..7519d937 100644 --- a/content/enhancement/bandaged.lua +++ b/content/enhancement/bandaged.lua @@ -7,6 +7,11 @@ SMODS.Enhancement { odds = 5 } }, + attributes = { + 'retrigger', + 'chance', + 'destroy_card' + }, loc_vars = function(self, info_queue, card) local numerator, denominator = PB_UTIL.chance_vars(card, self.key) diff --git a/content/enhancement/ceramic.lua b/content/enhancement/ceramic.lua index d5e95f40..cbf4a8d6 100644 --- a/content/enhancement/ceramic.lua +++ b/content/enhancement/ceramic.lua @@ -10,11 +10,15 @@ SMODS.Enhancement { mult_gt_chip = false } }, + attributes = { + 'economy', + 'destroy_card' + }, loc_vars = function(self, info_queue, card) return { vars = { - card.ability.extra.a_money_low + G.GAME.paperback.ceramic_inc, + card.ability.extra.a_money_low + G.GAME.paperback.ceramic_inc, card.ability.extra.a_money_high + G.GAME.paperback.ceramic_inc, } } diff --git a/content/enhancement/domino.lua b/content/enhancement/domino.lua index 4947e7b4..f4eed9b6 100644 --- a/content/enhancement/domino.lua +++ b/content/enhancement/domino.lua @@ -7,6 +7,12 @@ SMODS.Enhancement { scaling = 1 } }, + attributes = { + 'mult', + 'discard', + 'scaling', + 'reset' + }, loc_vars = function(self, info_queue, card) local count = 0 diff --git a/content/enhancement/sleeved.lua b/content/enhancement/sleeved.lua index fc8602c3..1eacc90b 100644 --- a/content/enhancement/sleeved.lua +++ b/content/enhancement/sleeved.lua @@ -7,6 +7,11 @@ SMODS.Enhancement { money = 5 } }, + attributes = { + 'debuff', + 'face_down', + 'economy' + }, loc_vars = function(self, info_queue, card) return { vars = { card.ability.extra.money } } diff --git a/content/enhancement/soaked.lua b/content/enhancement/soaked.lua index 677216d7..2118e495 100644 --- a/content/enhancement/soaked.lua +++ b/content/enhancement/soaked.lua @@ -7,6 +7,12 @@ SMODS.Enhancement { odds = 2 } }, + attributes = { + 'chips', + 'destroy_card', + 'chance', + 'discard' + }, loc_vars = function(self, info_queue, card) local numerator, denominator = PB_UTIL.chance_vars(card, self.key) @@ -40,7 +46,9 @@ SMODS.Enhancement { G.GAME.blind.triggered = true G.E_MANAGER:add_event(Event { trigger = "immediate", - func = function() SMODS.juice_up_blind(); return true end + func = function() + SMODS.juice_up_blind(); return true + end }) card_eval_status_text(held_card, "debuff") else diff --git a/content/enhancement/stained.lua b/content/enhancement/stained.lua index c8544989..5fbcc848 100644 --- a/content/enhancement/stained.lua +++ b/content/enhancement/stained.lua @@ -7,6 +7,11 @@ SMODS.Enhancement { mult_mod = 1, } }, + attributes = { + 'mult', + 'modify_card', + 'perma_bonus' + }, loc_vars = function(self, info_queue, card) return { diff --git a/content/enhancement/wrapped.lua b/content/enhancement/wrapped.lua index bca434ca..cc262613 100644 --- a/content/enhancement/wrapped.lua +++ b/content/enhancement/wrapped.lua @@ -11,6 +11,9 @@ SMODS.Enhancement { money = 2 } }, + attributes = { + 'economy', + }, loc_vars = function(self, info_queue, card) return { diff --git a/content/joker/57_leaf_clover.lua b/content/joker/57_leaf_clover.lua index a8e9a8b9..c379086a 100644 --- a/content/joker/57_leaf_clover.lua +++ b/content/joker/57_leaf_clover.lua @@ -36,8 +36,12 @@ SMODS.Joker { end if context.end_of_round and context.main_eval then if G.GAME.blind.boss then - card.ability.extra.current = 1 - return { message = localize('k_reset') } + SMODS.reset_card(card, { + ref_table = card.ability.extra, + ref_value = 'current', + reset_value = 1 + }) + return nil, true else SMODS.scale_card(card, { ref_table = card.ability.extra, diff --git a/content/joker/allinjest/moon_waltz.lua b/content/joker/allinjest/moon_waltz.lua index 67569708..d6eb510f 100644 --- a/content/joker/allinjest/moon_waltz.lua +++ b/content/joker/allinjest/moon_waltz.lua @@ -16,6 +16,7 @@ SMODS.Joker { 'scaling', 'chance', 'planet', + 'consumable', 'music' }, rarity = 2, diff --git a/content/joker/ampersand.lua b/content/joker/ampersand.lua index ecf14aa3..098f14df 100644 --- a/content/joker/ampersand.lua +++ b/content/joker/ampersand.lua @@ -9,7 +9,8 @@ SMODS.Joker { attributes = { 'retrigger', 'dark', - 'light' + 'light', + 'position' }, rarity = 1, pos = { x = 23, y = 6 }, diff --git a/content/joker/apple.lua b/content/joker/apple.lua index f4b15da2..d35bb1aa 100644 --- a/content/joker/apple.lua +++ b/content/joker/apple.lua @@ -10,6 +10,7 @@ SMODS.Joker { 'generation', 'negative', 'chance', + 'consumable', 'food' }, rarity = 1, diff --git a/content/joker/as_above_so_below.lua b/content/joker/as_above_so_below.lua index b661a528..7d494c79 100644 --- a/content/joker/as_above_so_below.lua +++ b/content/joker/as_above_so_below.lua @@ -4,8 +4,9 @@ SMODS.Joker { 'generation', 'apostle', 'tarot', - 'hand_type', - 'spectral' + 'consumable', + 'spectral', + 'hand_type' }, rarity = 2, pos = { x = 16, y = 4 }, diff --git a/content/joker/backpack.lua b/content/joker/backpack.lua index 5b72af56..d07019c5 100644 --- a/content/joker/backpack.lua +++ b/content/joker/backpack.lua @@ -2,6 +2,8 @@ SMODS.Joker { key = "backpack", attributes = { 'joker', + 'booster', + 'shop' }, rarity = 1, pos = { x = 4, y = 6 }, diff --git a/content/joker/basic_energy.lua b/content/joker/basic_energy.lua index 3852662f..f3b73451 100644 --- a/content/joker/basic_energy.lua +++ b/content/joker/basic_energy.lua @@ -7,8 +7,8 @@ SMODS.Joker { }, attributes = { 'generation', - 'negative', - 'chance' + 'chance', + 'consumable' }, rarity = 2, pos = { x = 1, y = 6 }, diff --git a/content/joker/big_misser.lua b/content/joker/big_misser.lua index e194a625..79eb17bb 100644 --- a/content/joker/big_misser.lua +++ b/content/joker/big_misser.lua @@ -7,7 +7,8 @@ SMODS.Joker { } }, attributes = { - 'xmult' + 'xmult', + 'consumable_slot' }, rarity = 2, pos = { x = 9, y = 5 }, diff --git a/content/joker/blue_marble.lua b/content/joker/blue_marble.lua index 220ac204..9e737e99 100644 --- a/content/joker/blue_marble.lua +++ b/content/joker/blue_marble.lua @@ -10,6 +10,7 @@ SMODS.Joker { 'mult', 'scaling', 'planet', + 'consumable', 'space' }, rarity = 1, diff --git a/content/joker/chaplin.lua b/content/joker/chaplin.lua index 90885507..70e54f4b 100644 --- a/content/joker/chaplin.lua +++ b/content/joker/chaplin.lua @@ -1,7 +1,8 @@ SMODS.Joker { key = "chaplin", attributes = { - 'economy' + 'economy', + 'shop' }, rarity = 4, pos = { x = 12, y = 1 }, diff --git a/content/joker/da_capo.lua b/content/joker/da_capo.lua index 78f8dfe6..47f50d22 100644 --- a/content/joker/da_capo.lua +++ b/content/joker/da_capo.lua @@ -11,7 +11,8 @@ SMODS.Joker { 'spades', 'hearts', 'clubs', - 'diamonds' + 'diamonds', + 'debuff' }, rarity = 3, pos = { x = 17, y = 8 }, diff --git a/content/joker/ddakji.lua b/content/joker/ddakji.lua index 20781d82..c827a33e 100644 --- a/content/joker/ddakji.lua +++ b/content/joker/ddakji.lua @@ -7,7 +7,9 @@ SMODS.Joker { }, attributes = { 'chance', - 'generation' + 'generation', + 'consumable', + 'face_down' }, rarity = 3, pos = { x = 8, y = 6 }, diff --git a/content/joker/deviled_egg.lua b/content/joker/deviled_egg.lua index d4575709..c4d718db 100644 --- a/content/joker/deviled_egg.lua +++ b/content/joker/deviled_egg.lua @@ -9,6 +9,7 @@ SMODS.Joker { attributes = { 'modify_card', 'enhancements', + 'position', 'food' }, rarity = 1, diff --git a/content/joker/emf_reader.lua b/content/joker/emf_reader.lua index 064b3c14..ed38fe83 100644 --- a/content/joker/emf_reader.lua +++ b/content/joker/emf_reader.lua @@ -10,7 +10,8 @@ if PB_UTIL.should_load_spectrum_items() then 'hand_type', 'destroy_card', 'generation', - 'spectral' + 'spectral', + 'consumable' }, rarity = 3, pos = { x = 25, y = 3 }, diff --git a/content/joker/everything_must_go.lua b/content/joker/everything_must_go.lua index 4d0386f6..fb2f3e94 100644 --- a/content/joker/everything_must_go.lua +++ b/content/joker/everything_must_go.lua @@ -6,7 +6,8 @@ SMODS.Joker { } }, attributes = { - 'passive' + 'passive', + 'shop' }, rarity = 2, pos = { x = 14, y = 10 }, diff --git a/content/joker/festive_joker.lua b/content/joker/festive_joker.lua index 9e8b03b4..ba39ca72 100644 --- a/content/joker/festive_joker.lua +++ b/content/joker/festive_joker.lua @@ -8,6 +8,7 @@ SMODS.Joker { }, attributes = { 'generation', + 'consumable', 'enhancements', 'chance' }, diff --git a/content/joker/first_contact.lua b/content/joker/first_contact.lua index 8f9c4c0e..ad3330a6 100644 --- a/content/joker/first_contact.lua +++ b/content/joker/first_contact.lua @@ -9,6 +9,7 @@ SMODS.Joker { attributes = { 'generation', 'spectral', + 'consumable', 'suit', 'dark' }, diff --git a/content/joker/fodder.lua b/content/joker/fodder.lua index 4fbf41d0..f6103dd6 100644 --- a/content/joker/fodder.lua +++ b/content/joker/fodder.lua @@ -2,7 +2,8 @@ SMODS.Joker { key = "fodder", attributes = { 'on_sell', - 'ego_gift' + 'ego_gift', + 'consumable' }, rarity = 1, pos = { x = 12, y = 5 }, diff --git a/content/joker/full_moon.lua b/content/joker/full_moon.lua index 7b1f6499..dfa0d8e5 100644 --- a/content/joker/full_moon.lua +++ b/content/joker/full_moon.lua @@ -7,6 +7,7 @@ SMODS.Joker { }, attributes = { 'planet', + 'consumable', 'retrigger', 'chance', 'red' diff --git a/content/joker/furioso.lua b/content/joker/furioso.lua index 63644cdf..2bfc8c00 100644 --- a/content/joker/furioso.lua +++ b/content/joker/furioso.lua @@ -99,14 +99,18 @@ SMODS.Joker { -- If boss blind defeated, reset all rank flags and reset x_mult if context.end_of_round and context.main_eval and G.GAME.blind.boss and not context.blueprint then - card.ability.extra.ranks = {} - card.ability.extra.ranks_sorted = {} - card.ability.extra.x_mult = 1 - - return { - message = localize('k_reset'), - colour = G.C.RED - } + SMODS.reset_card(card, { + ref_table = card.ability.extra, + ref_value = 'x_mult', + reset_value = 1, + operation = function(ref_table, ref_value, initial, reset) + ref_table[ref_value] = reset + ref_table['ranks'] = {} + ref_table['ranks_sorted'] = {} + end, + message_colour = G.C.MULT + }) + return nil, true end end, diff --git a/content/joker/ghost_cola.lua b/content/joker/ghost_cola.lua index 3abc7aa7..dbe11595 100644 --- a/content/joker/ghost_cola.lua +++ b/content/joker/ghost_cola.lua @@ -6,6 +6,7 @@ SMODS.Joker { 'tag', 'negative', 'spectral', + 'consumable', 'on_sell' }, rarity = 2, diff --git a/content/joker/giga_size.lua b/content/joker/giga_size.lua index 52f4ef80..37b2f52f 100644 --- a/content/joker/giga_size.lua +++ b/content/joker/giga_size.lua @@ -2,7 +2,8 @@ SMODS.Joker { key = 'giga_size', attributes = { 'xmult', - 'hands' + 'hands', + 'reset' }, rarity = 3, pos = { x = 17, y = 7 }, @@ -60,10 +61,12 @@ SMODS.Joker { end if not context.blueprint and context.end_of_round and context.cardarea == G.jokers then - card.ability.extra.xmult = 1 - return { - message = localize('k_reset') - } + SMODS.reset_card(card, { + ref_table = card.ability.extra, + ref_value = 'xmult', + reset_value = 1 + }) + return nil, true end end, diff --git a/content/joker/great_wave.lua b/content/joker/great_wave.lua index 7f241b06..ce2a018a 100644 --- a/content/joker/great_wave.lua +++ b/content/joker/great_wave.lua @@ -1,7 +1,8 @@ SMODS.Joker { key = "great_wave", attributes = { - 'retrigger' + 'retrigger', + 'position' }, rarity = 3, pos = { x = 4, y = 2 }, diff --git a/content/joker/hamsa.lua b/content/joker/hamsa.lua index 57415bdc..bf235f0e 100644 --- a/content/joker/hamsa.lua +++ b/content/joker/hamsa.lua @@ -7,7 +7,8 @@ SMODS.Joker { }, attributes = { 'hands', - 'retrigger' + 'retrigger', + 'position' }, rarity = 1, pos = { x = 22, y = 5 }, diff --git a/content/joker/insurance_policy.lua b/content/joker/insurance_policy.lua index 88cf6549..1850d81d 100644 --- a/content/joker/insurance_policy.lua +++ b/content/joker/insurance_policy.lua @@ -11,7 +11,8 @@ SMODS.Joker { 'mult', 'rank', 'king', - 'jack' + 'jack', + 'full_deck' }, rarity = 2, pos = { x = 19, y = 7 }, diff --git a/content/joker/jestrica.lua b/content/joker/jestrica.lua index 2f88e234..2269459c 100644 --- a/content/joker/jestrica.lua +++ b/content/joker/jestrica.lua @@ -64,12 +64,13 @@ SMODS.Joker { -- Check if this Joker's mult should reset depending on if an 8 was scored this round if not context.blueprint and context.end_of_round and context.main_eval then if not card.ability.extra.scored and card.ability.extra.mult > 0 then - card.ability.extra.mult = 0 - - return { - message = localize('k_reset'), - colour = G.C.MULT - } + SMODS.reset_card(card, { + ref_table = card.ability.extra, + ref_value = 'mult', + reset_value = 0, + message_colour = G.C.MULT + }) + return nil, true end -- Reset the scored flag after round ends diff --git a/content/joker/jimbos_joyous_joker_jamboree.lua b/content/joker/jimbos_joyous_joker_jamboree.lua index 27983043..2d6121d3 100644 --- a/content/joker/jimbos_joyous_joker_jamboree.lua +++ b/content/joker/jimbos_joyous_joker_jamboree.lua @@ -8,6 +8,7 @@ SMODS.Joker { attributes = { 'generation', 'minor_arcana', + 'consumable', 'music' }, pools = { diff --git a/content/joker/joker_cd_i.lua b/content/joker/joker_cd_i.lua index 690a3793..c61c3954 100644 --- a/content/joker/joker_cd_i.lua +++ b/content/joker/joker_cd_i.lua @@ -9,6 +9,7 @@ SMODS.Joker { attributes = { 'generation', 'planet', + 'consumable', 'chance' }, rarity = 1, diff --git a/content/joker/kintsugi_joker.lua b/content/joker/kintsugi_joker.lua index ad98ddbf..cc6dacb0 100644 --- a/content/joker/kintsugi_joker.lua +++ b/content/joker/kintsugi_joker.lua @@ -66,9 +66,10 @@ SMODS.Joker { ref_table = card.ability.extra, ref_value = 'total', scalar_value = 'increase', + scalar_factor = inc, operation = function(ref_table, ref_value, initial, scaling) - ref_table[ref_value] = initial + scaling * inc - G.GAME.paperback.ceramic_inc = G.GAME.paperback.ceramic_inc + scaling * inc + ref_table[ref_value] = initial + scaling + G.GAME.paperback.ceramic_inc = G.GAME.paperback.ceramic_inc + scaling end }) return nil, true diff --git a/content/joker/master_plan.lua b/content/joker/master_plan.lua index 58d6d589..95493b11 100644 --- a/content/joker/master_plan.lua +++ b/content/joker/master_plan.lua @@ -1,7 +1,8 @@ SMODS.Joker { key = "master_plan", attributes = { - 'copying' + 'copying', + 'position' }, rarity = 3, pos = { x = 22, y = 4 }, diff --git a/content/joker/mismatched_sock.lua b/content/joker/mismatched_sock.lua index d5148a7f..659f482a 100644 --- a/content/joker/mismatched_sock.lua +++ b/content/joker/mismatched_sock.lua @@ -51,11 +51,12 @@ SMODS.Joker { if context.before and not context.blueprint then if next(context.poker_hands['Pair']) then - card.ability.extra.x_mult = 1 - return { - message = localize('k_reset'), - colour = G.C.ORANGE - } + SMODS.reset_card(card, { + ref_table = card.ability.extra, + ref_value = 'x_mult', + reset_value = 1 + }) + return nil, true end end diff --git a/content/joker/oracle.lua b/content/joker/oracle.lua index 0d27c2dd..2cd51790 100644 --- a/content/joker/oracle.lua +++ b/content/joker/oracle.lua @@ -9,7 +9,8 @@ SMODS.Joker { attributes = { 'xchips', 'scaling', - 'minor_arcana' + 'minor_arcana', + 'consumable' }, rarity = 2, pos = { x = 15, y = 9 }, diff --git a/content/joker/oujia_board.lua b/content/joker/oujia_board.lua index c17098b6..431bcb6f 100644 --- a/content/joker/oujia_board.lua +++ b/content/joker/oujia_board.lua @@ -3,7 +3,9 @@ SMODS.Joker { config = { extra = { allow_soul = false } }, attributes = { 'generation', - 'spectral' + 'spectral', + 'consumable', + 'shop' }, rarity = 3, pos = { x = 24, y = 10 }, diff --git a/content/joker/paralyzed.lua b/content/joker/paralyzed.lua index 52188d96..a966094b 100644 --- a/content/joker/paralyzed.lua +++ b/content/joker/paralyzed.lua @@ -2,7 +2,8 @@ SMODS.Joker { key = "paralyzed", attributes = { 'generation', - 'tarot' + 'tarot', + 'consumable' }, rarity = 2, pos = { x = 20, y = 0 }, diff --git a/content/joker/park_postcard.lua b/content/joker/park_postcard.lua index df0e6eb4..49a54d0e 100644 --- a/content/joker/park_postcard.lua +++ b/content/joker/park_postcard.lua @@ -47,11 +47,12 @@ SMODS.Joker { return nil, true end if context.playing_card_added or context.remove_playing_cards and not context.blueprint then - card.ability.extra.xm = 1 - return { - message = localize('k_reset'), - colour = G.C.ORANGE - } + SMODS.reset_card(card, { + ref_table = card.ability.extra, + ref_value = 'xm', + reset_value = 1 + }) + return nil, true end end } diff --git a/content/joker/pedrillo.lua b/content/joker/pedrillo.lua index baf0f76f..824e42a9 100644 --- a/content/joker/pedrillo.lua +++ b/content/joker/pedrillo.lua @@ -9,6 +9,7 @@ SMODS.Joker { attributes = { 'generation', 'planet', + 'consumable', 'hand_type', 'rank', 'queen' diff --git a/content/joker/photocopy.lua b/content/joker/photocopy.lua index d0694456..e61f83dd 100644 --- a/content/joker/photocopy.lua +++ b/content/joker/photocopy.lua @@ -1,7 +1,8 @@ SMODS.Joker { key = "photocopy", attributes = { - 'copying' + 'copying', + 'position' }, rarity = 3, pos = { x = 22, y = 3 }, diff --git a/content/joker/planchette.lua b/content/joker/planchette.lua index 6df91e99..b3f259c0 100644 --- a/content/joker/planchette.lua +++ b/content/joker/planchette.lua @@ -9,7 +9,8 @@ SMODS.Joker { attributes = { 'xmult', 'scaling', - 'spectral' + 'spectral', + 'consumable' }, rarity = 2, pos = { x = 25, y = 10 }, diff --git a/content/joker/pool_table.lua b/content/joker/pool_table.lua index bace72d1..2ac3f9da 100644 --- a/content/joker/pool_table.lua +++ b/content/joker/pool_table.lua @@ -4,6 +4,7 @@ SMODS.Joker { attributes = { 'generation', 'planet', + 'consumable', 'hand_type', 'hands', 'face' diff --git a/content/joker/pride_flag.lua b/content/joker/pride_flag.lua index f34f38ea..575bdbee 100644 --- a/content/joker/pride_flag.lua +++ b/content/joker/pride_flag.lua @@ -53,13 +53,13 @@ if PB_UTIL.config.suits_enabled then if context.before and not context.blueprint then -- Reset if played hand contains a 'Straight' if next(context.poker_hands['Straight']) then - card.ability.extra.chips = 0 - - SMODS.calculate_effect { - message = localize('k_reset'), - colour = G.C.RED, - card = card, - } + SMODS.reset_card(card, { + ref_table = card.ability.extra, + ref_value = 'chips', + reset_value = 0, + message_colour = G.C.RED + }) + return nil, true -- Give chips if hand contains a Spectrum elseif PB_UTIL.get_unique_suits(context.full_hand, nil, true) >= 5 then SMODS.scale_card(card, { diff --git a/content/joker/protocol.lua b/content/joker/protocol.lua index 137557f5..708414e4 100644 --- a/content/joker/protocol.lua +++ b/content/joker/protocol.lua @@ -1,7 +1,8 @@ SMODS.Joker { key = 'protocol', attributes = { - 'passive' + 'passive', + 'booster' }, rarity = 1, pos = { x = 12, y = 6 }, diff --git a/content/joker/pyrite.lua b/content/joker/pyrite.lua index 7c50eb42..2ab95feb 100644 --- a/content/joker/pyrite.lua +++ b/content/joker/pyrite.lua @@ -9,6 +9,7 @@ SMODS.Joker { attributes = { 'generation', 'tarot', + 'consumable', 'suit', 'crowns', 'chance' diff --git a/content/joker/sacrificial_lamb.lua b/content/joker/sacrificial_lamb.lua index cf1c22a1..688b3088 100644 --- a/content/joker/sacrificial_lamb.lua +++ b/content/joker/sacrificial_lamb.lua @@ -58,9 +58,7 @@ SMODS.Joker { ref_table = card.ability.extra, ref_value = 'mult', scalar_value = 'mult_mod', - operation = function(ref_table, ref_value, initial, scaling) - ref_table[ref_value] = initial + scaling * count - end, + scalar_factor = count, scaling_message = { message = localize { type = 'variable', diff --git a/content/joker/sake_cup.lua b/content/joker/sake_cup.lua index 0c2e8b66..22f8c535 100644 --- a/content/joker/sake_cup.lua +++ b/content/joker/sake_cup.lua @@ -9,6 +9,7 @@ SMODS.Joker { attributes = { 'generation', 'planet', + 'consumable', 'hand_type', 'rank', 'nine', diff --git a/content/joker/shooting_star.lua b/content/joker/shooting_star.lua index c7bc21b9..b08bdf2f 100644 --- a/content/joker/shooting_star.lua +++ b/content/joker/shooting_star.lua @@ -9,6 +9,7 @@ SMODS.Joker { attributes = { 'generation', 'planet', + 'consumable', 'hand_type', 'suit', 'stars' diff --git a/content/joker/shopkeep.lua b/content/joker/shopkeep.lua index 7a7310d7..ecb4124b 100644 --- a/content/joker/shopkeep.lua +++ b/content/joker/shopkeep.lua @@ -11,6 +11,7 @@ SMODS.Joker { 'economy', 'generation', 'tag', + 'shop', 'boss_blind' }, rarity = 3, diff --git a/content/joker/shopping_center.lua b/content/joker/shopping_center.lua index e308c0e0..2695501a 100644 --- a/content/joker/shopping_center.lua +++ b/content/joker/shopping_center.lua @@ -1,7 +1,8 @@ SMODS.Joker { key = 'shopping_center', attributes = { - 'passive' + 'passive', + 'shop' }, rarity = 1, pos = { x = 7, y = 1 }, diff --git a/content/joker/silent_assassin.lua b/content/joker/silent_assassin.lua index c55f49db..89bb5450 100644 --- a/content/joker/silent_assassin.lua +++ b/content/joker/silent_assassin.lua @@ -56,9 +56,7 @@ SMODS.Joker { ref_table = card.ability.extra, ref_value = 'mult', scalar_value = 'change', - operation = function(ref_table, ref_value, initial, scaling) - ref_table[ref_value] = initial + scaling * change - end + scalar_factor = change }) return nil, true end diff --git a/content/joker/small_scale_onshore_wind.lua b/content/joker/small_scale_onshore_wind.lua index de60f9a2..8554f83f 100644 --- a/content/joker/small_scale_onshore_wind.lua +++ b/content/joker/small_scale_onshore_wind.lua @@ -43,11 +43,12 @@ SMODS.Joker { }) return nil, true else - card.ability.extra.mult = 0 - return { - message = localize('k_reset'), - colour = G.C.ORANGE - } + SMODS.reset_card(card, { + ref_table = card.ability.extra, + ref_value = 'mult', + reset_value = 0 + }) + return nil, true end end if context.joker_main then diff --git a/content/joker/solar_eclipse.lua b/content/joker/solar_eclipse.lua index e4e94507..d4066f18 100644 --- a/content/joker/solar_eclipse.lua +++ b/content/joker/solar_eclipse.lua @@ -9,7 +9,8 @@ SMODS.Joker { 'modify_card', 'suit', 'light', - 'crowns' + 'crowns', + 'space' }, rarity = 3, pos = { x = 11, y = 4 }, diff --git a/content/joker/solar_system.lua b/content/joker/solar_system.lua index dc226f3a..9626b64c 100644 --- a/content/joker/solar_system.lua +++ b/content/joker/solar_system.lua @@ -9,7 +9,9 @@ SMODS.Joker { attributes = { 'xmult', 'scaling', - 'planet' + 'planet', + 'consumable', + 'space' }, rarity = 2, pos = { x = 7, y = 0 }, diff --git a/content/joker/spotty_joker.lua b/content/joker/spotty_joker.lua index d88c15fb..fdb0fec7 100644 --- a/content/joker/spotty_joker.lua +++ b/content/joker/spotty_joker.lua @@ -58,9 +58,7 @@ SMODS.Joker { ref_table = card.ability.extra, ref_value = 'xmult', scalar_value = 'xmult_mod', - operation = function(ref_table, ref_value, initial, scaling) - ref_table[ref_value] = initial + scaling * upgrade - end + scalar_factor = upgrade }) return nil, true end diff --git a/content/joker/summoning_circle.lua b/content/joker/summoning_circle.lua index c4fe48a1..c549e3b9 100644 --- a/content/joker/summoning_circle.lua +++ b/content/joker/summoning_circle.lua @@ -8,6 +8,7 @@ SMODS.Joker { attributes = { 'generation', 'hand_type', + 'consumable', 'red' }, rarity = 3, diff --git a/content/joker/telamon.lua b/content/joker/telamon.lua index 09065238..08664af1 100644 --- a/content/joker/telamon.lua +++ b/content/joker/telamon.lua @@ -9,6 +9,7 @@ SMODS.Joker { attributes = { 'generation', 'minor_arcana', + 'consumable', 'hand_type' }, rarity = 2, diff --git a/content/joker/the_one_who_waits.lua b/content/joker/the_one_who_waits.lua index 5e5ef7a4..36b759ba 100644 --- a/content/joker/the_one_who_waits.lua +++ b/content/joker/the_one_who_waits.lua @@ -14,6 +14,7 @@ SMODS.Joker { 'scaling', 'generation', 'tarot', + 'consumable', 'suit', 'crowns', 'chance' diff --git a/content/joker/the_strongest.lua b/content/joker/the_strongest.lua index 217cf66e..3e0995b2 100644 --- a/content/joker/the_strongest.lua +++ b/content/joker/the_strongest.lua @@ -20,6 +20,7 @@ SMODS.Joker { 'xmult', 'scaling', 'ego_gift', + 'consumable', 'red', 'boss_blind' }, diff --git a/content/joker/tian_tian.lua b/content/joker/tian_tian.lua index abdcf40c..c2493dfe 100644 --- a/content/joker/tian_tian.lua +++ b/content/joker/tian_tian.lua @@ -46,9 +46,7 @@ SMODS.Joker { ref_table = card.ability.extra, ref_value = 'x_mult', scalar_value = 'a_xmult', - operation = function(ref_table, ref_value, initial, scaling) - ref_table[ref_value] = initial + scaling * scale - end, + scalar_factor = scale, message_key = 'a_xmult' }) return nil, true diff --git a/content/joker/tome.lua b/content/joker/tome.lua index 28aa8cbc..372dbe54 100644 --- a/content/joker/tome.lua +++ b/content/joker/tome.lua @@ -1,7 +1,9 @@ SMODS.Joker { key = 'tome', attributes = { - 'joker' + 'joker', + 'rarity', + 'consumable_slot' }, rarity = 2, pos = { x = 17, y = 5 }, diff --git a/content/joker/touch_tone_joker.lua b/content/joker/touch_tone_joker.lua index 0c45a949..fcd2bbab 100644 --- a/content/joker/touch_tone_joker.lua +++ b/content/joker/touch_tone_joker.lua @@ -13,7 +13,9 @@ SMODS.Joker { attributes = { 'tarot', 'planet', - 'spectral' + 'spectral', + 'consumable', + 'booster' }, pools = { Music = true diff --git a/content/joker/triple_moon_goddess.lua b/content/joker/triple_moon_goddess.lua index d7c348f2..6b51cef6 100644 --- a/content/joker/triple_moon_goddess.lua +++ b/content/joker/triple_moon_goddess.lua @@ -11,6 +11,7 @@ if PB_UTIL.config.minor_arcana_enabled then 'generation', 'tarot', 'minor_arcana', + 'consumable', 'hand_type', 'chance' }, diff --git a/content/joker/ultra_rare.lua b/content/joker/ultra_rare.lua index 74a615ec..8febf7b2 100644 --- a/content/joker/ultra_rare.lua +++ b/content/joker/ultra_rare.lua @@ -13,6 +13,7 @@ SMODS.Joker { attributes = { 'generation', 'joker', + 'rarity', 'music' }, pools = { diff --git a/content/joker/unholy_alliance.lua b/content/joker/unholy_alliance.lua index ea492037..eb79c774 100644 --- a/content/joker/unholy_alliance.lua +++ b/content/joker/unholy_alliance.lua @@ -10,6 +10,7 @@ SMODS.Joker { attributes = { 'chips', 'scaling', + 'prevents_death', 'secret' }, rarity = 1, @@ -47,9 +48,7 @@ SMODS.Joker { ref_table = card.ability.extra, ref_value = 'chips', scalar_value = 'a_chips', - operation = function(ref_table, ref_value, initial, scaling) - ref_table[ref_value] = initial + scaling * count - end, + scalar_factor = count, scaling_message = { message = localize { type = 'variable', diff --git a/content/joker/watermelon.lua b/content/joker/watermelon.lua index 6b697459..ed4feec1 100644 --- a/content/joker/watermelon.lua +++ b/content/joker/watermelon.lua @@ -61,9 +61,7 @@ SMODS.Joker { ref_table = card.ability.extra, ref_value = 'x_mult', scalar_value = 'a_xmult', - operation = function(ref_table, ref_value, initial, scaling) - ref_table[ref_value] = initial - scaling * #context.removed - end, + scalar_factor = #context.removed, scaling_message = { message = localize { type = 'variable', diff --git a/content/minor_arcana/ace_of_cups.lua b/content/minor_arcana/ace_of_cups.lua index 8989efcc..a13d9990 100644 --- a/content/minor_arcana/ace_of_cups.lua +++ b/content/minor_arcana/ace_of_cups.lua @@ -4,6 +4,10 @@ PB_UTIL.MinorArcana { paperclip = 'paperback_blue_clip', max_highlighted = 2 }, + attributes = { + 'modify_card', + 'paperclip' + }, atlas = 'minor_arcana_atlas', pos = { x = 0, y = 0 }, paperback_credit = { diff --git a/content/minor_arcana/ace_of_pentacles.lua b/content/minor_arcana/ace_of_pentacles.lua index 5e31b187..80da608c 100644 --- a/content/minor_arcana/ace_of_pentacles.lua +++ b/content/minor_arcana/ace_of_pentacles.lua @@ -4,6 +4,11 @@ PB_UTIL.MinorArcana { max_highlighted = 3, suit_conv = 'paperback_Stars' }, + attributes = { + 'modify_card', + 'suit', + 'stars' + }, atlas = 'minor_arcana_atlas', pos = { x = 0, y = 6 }, paperback_credit = { diff --git a/content/minor_arcana/ace_of_swords.lua b/content/minor_arcana/ace_of_swords.lua index 8f43dc69..17affd74 100644 --- a/content/minor_arcana/ace_of_swords.lua +++ b/content/minor_arcana/ace_of_swords.lua @@ -4,6 +4,11 @@ PB_UTIL.MinorArcana { max_highlighted = 3, suit_conv = 'paperback_Crowns' }, + attributes = { + 'modify_card', + 'suit', + 'crowns' + }, atlas = 'minor_arcana_atlas', pos = { x = 0, y = 4 }, paperback_credit = { diff --git a/content/minor_arcana/ace_of_wands.lua b/content/minor_arcana/ace_of_wands.lua index ed8d3da8..7e59364d 100644 --- a/content/minor_arcana/ace_of_wands.lua +++ b/content/minor_arcana/ace_of_wands.lua @@ -4,6 +4,10 @@ PB_UTIL.MinorArcana { paperclip = 'paperback_red_clip', max_highlighted = 3 }, + attributes = { + 'modify_card', + 'paperclip' + }, atlas = 'minor_arcana_atlas', pos = { x = 0, y = 2 }, paperback_credit = { diff --git a/content/minor_arcana/eight_of_cups.lua b/content/minor_arcana/eight_of_cups.lua index 51139c37..cdc1d139 100644 --- a/content/minor_arcana/eight_of_cups.lua +++ b/content/minor_arcana/eight_of_cups.lua @@ -3,6 +3,10 @@ PB_UTIL.MinorArcana { config = { max_highlighted = 4 }, + attributes = { + 'modify_card', + 'suit' + }, atlas = 'minor_arcana_atlas', pos = { x = 0, y = 1 }, unlocked = true, diff --git a/content/minor_arcana/eight_of_pentacles.lua b/content/minor_arcana/eight_of_pentacles.lua index 73667659..c0207c9f 100644 --- a/content/minor_arcana/eight_of_pentacles.lua +++ b/content/minor_arcana/eight_of_pentacles.lua @@ -5,6 +5,12 @@ PB_UTIL.MinorArcana { money = 1, } }, + attributes = { + 'economy', + 'tarot', + 'minor_arcana', + 'consumable' + }, atlas = 'minor_arcana_atlas', pos = { x = 0, y = 7 }, paperback_credit = { diff --git a/content/minor_arcana/eight_of_swords.lua b/content/minor_arcana/eight_of_swords.lua index 549493a9..f1c65b7c 100644 --- a/content/minor_arcana/eight_of_swords.lua +++ b/content/minor_arcana/eight_of_swords.lua @@ -3,6 +3,10 @@ PB_UTIL.MinorArcana { config = { max_highlighted = 3, }, + attributes = { + 'modify_card', + 'paperclip' + }, atlas = 'minor_arcana_atlas', pos = { x = 0, y = 5 }, paperback = { diff --git a/content/minor_arcana/eight_of_wands.lua b/content/minor_arcana/eight_of_wands.lua index adef7c95..1471149d 100644 --- a/content/minor_arcana/eight_of_wands.lua +++ b/content/minor_arcana/eight_of_wands.lua @@ -7,6 +7,13 @@ PB_UTIL.MinorArcana { cost_per_joker = 5, min_jokers = 5, }, + attributes = { + 'lose_economy', + 'generation', + 'tag', + 'negative', + 'joker' + }, paperback_credit = { coder = { 'srockw' } }, diff --git a/content/minor_arcana/five_of_cups.lua b/content/minor_arcana/five_of_cups.lua index 4f2046a1..13705656 100644 --- a/content/minor_arcana/five_of_cups.lua +++ b/content/minor_arcana/five_of_cups.lua @@ -4,6 +4,10 @@ PB_UTIL.MinorArcana { max_highlighted = 2, mod_conv = 'm_paperback_soaked' }, + attributes = { + 'modify_card', + 'enhancements' + }, atlas = 'minor_arcana_atlas', pos = { x = 4, y = 0 }, unlocked = true, diff --git a/content/minor_arcana/five_of_pentacles.lua b/content/minor_arcana/five_of_pentacles.lua index dca5299a..a17bbe1e 100644 --- a/content/minor_arcana/five_of_pentacles.lua +++ b/content/minor_arcana/five_of_pentacles.lua @@ -4,6 +4,10 @@ PB_UTIL.MinorArcana { max_highlighted = 1, mod_conv = 'm_paperback_antique' }, + attributes = { + 'modify_card', + 'enhancements' + }, atlas = 'minor_arcana_atlas', pos = { x = 4, y = 6 }, unlocked = true, diff --git a/content/minor_arcana/five_of_swords.lua b/content/minor_arcana/five_of_swords.lua index d9a3d2d0..6653355b 100644 --- a/content/minor_arcana/five_of_swords.lua +++ b/content/minor_arcana/five_of_swords.lua @@ -5,6 +5,12 @@ PB_UTIL.MinorArcana { config = { max_highlighted = 1, }, + attributes = { + 'modify_card', + 'enhancements', + 'seals', + 'editions' + }, paperback_credit = { coder = { 'srockw' } }, diff --git a/content/minor_arcana/five_of_wands.lua b/content/minor_arcana/five_of_wands.lua index 5ad63f63..130a6512 100644 --- a/content/minor_arcana/five_of_wands.lua +++ b/content/minor_arcana/five_of_wands.lua @@ -1,5 +1,9 @@ PB_UTIL.MinorArcana { key = 'five_of_wands', + attributes = { + 'destroy_card', + 'lose_economy' + }, atlas = 'minor_arcana_atlas', pos = { x = 4, y = 2 }, paperback_credit = { diff --git a/content/minor_arcana/four_of_cups.lua b/content/minor_arcana/four_of_cups.lua index ed54410b..9226b209 100644 --- a/content/minor_arcana/four_of_cups.lua +++ b/content/minor_arcana/four_of_cups.lua @@ -6,6 +6,13 @@ PB_UTIL.MinorArcana { money = 5 } }, + attributes = { + 'modify_card', + 'enhancements', + 'seals', + 'editions', + 'economy' + }, atlas = 'minor_arcana_atlas', pos = { x = 3, y = 0 }, paperback_credit = { diff --git a/content/minor_arcana/four_of_pentacles.lua b/content/minor_arcana/four_of_pentacles.lua index daf56171..23179cff 100644 --- a/content/minor_arcana/four_of_pentacles.lua +++ b/content/minor_arcana/four_of_pentacles.lua @@ -10,6 +10,10 @@ PB_UTIL.MinorArcana { denominator = 2 } }, + attributes = { + 'destroy_card', + 'chance' + }, paperback_credit = { artist = { 'ari' }, coder = { 'metanite' } @@ -22,11 +26,13 @@ PB_UTIL.MinorArcana { card.ability.extra.denominator, "paperback_four_of_pentacles" ) - return { vars = { - card.ability.max_highlighted, - num, - dem - } } + return { + vars = { + card.ability.max_highlighted, + num, + dem + } + } end, use = function(self, card, area) @@ -34,13 +40,13 @@ PB_UTIL.MinorArcana { for _, v in ipairs(G.hand.cards) do if (not v.highlighted) - and SMODS.pseudorandom_probability( - card, - "four_of_pentacles", - card.ability.extra.numerator, - card.ability.extra.denominator, - "paperback_four_of_pentacles") - then + and SMODS.pseudorandom_probability( + card, + "four_of_pentacles", + card.ability.extra.numerator, + card.ability.extra.denominator, + "paperback_four_of_pentacles") + then cards[#cards + 1] = v end end diff --git a/content/minor_arcana/four_of_swords.lua b/content/minor_arcana/four_of_swords.lua index 79948fdd..f21f31e8 100644 --- a/content/minor_arcana/four_of_swords.lua +++ b/content/minor_arcana/four_of_swords.lua @@ -3,6 +3,14 @@ PB_UTIL.MinorArcana { config = { max_highlighted = 2, }, + attributes = { + 'modify_card', + 'rank', + 'face', + 'king', + 'queen', + 'jack' + }, atlas = 'minor_arcana_atlas', pos = { x = 3, y = 4 }, paperback_credit = { diff --git a/content/minor_arcana/four_of_wands.lua b/content/minor_arcana/four_of_wands.lua index 7dbd027e..5b88c453 100644 --- a/content/minor_arcana/four_of_wands.lua +++ b/content/minor_arcana/four_of_wands.lua @@ -4,6 +4,10 @@ PB_UTIL.MinorArcana { paperclip = 'paperback_pink_clip', max_highlighted = 2 }, + attributes = { + 'modify_card', + 'paperclip' + }, atlas = 'minor_arcana_atlas', pos = { x = 3, y = 2 }, paperback_credit = { diff --git a/content/minor_arcana/king_of_cups.lua b/content/minor_arcana/king_of_cups.lua index 6e94cae8..9e9c52b1 100644 --- a/content/minor_arcana/king_of_cups.lua +++ b/content/minor_arcana/king_of_cups.lua @@ -5,6 +5,10 @@ PB_UTIL.MinorArcana { money = 5, } }, + attributes = { + 'economy', + 'full_deck' + }, atlas = 'minor_arcana_atlas', pos = { x = 6, y = 1 }, paperback_credit = { diff --git a/content/minor_arcana/king_of_pentacles.lua b/content/minor_arcana/king_of_pentacles.lua index 803504ce..2779e082 100644 --- a/content/minor_arcana/king_of_pentacles.lua +++ b/content/minor_arcana/king_of_pentacles.lua @@ -5,6 +5,11 @@ PB_UTIL.MinorArcana { money = 1, } }, + attributes = { + 'economy', + 'face', + 'full_deck' + }, atlas = 'minor_arcana_atlas', pos = { x = 6, y = 7 }, paperback_credit = { diff --git a/content/minor_arcana/king_of_swords.lua b/content/minor_arcana/king_of_swords.lua index 86a60ee9..296a1642 100644 --- a/content/minor_arcana/king_of_swords.lua +++ b/content/minor_arcana/king_of_swords.lua @@ -1,5 +1,8 @@ PB_UTIL.MinorArcana { key = 'king_of_swords', + attributes = { + 'joker' + }, atlas = 'minor_arcana_atlas', pos = { x = 6, y = 5 }, paperback_credit = { @@ -8,14 +11,14 @@ PB_UTIL.MinorArcana { -- Thanks mys. minty! loc_vars = function(self, info_queue, card) - local mod_key = self.key - if next(SMODS.find_mod("Bunco")) then - mod_key = mod_key .. "_bunc" + local mod_key = self.key + if next(SMODS.find_mod("Bunco")) then + mod_key = mod_key .. "_bunc" end return { key = mod_key } - end, + end, in_pool = function(self, args) return G.GAME.modifiers.enable_perishables_in_shop and G.GAME.modifiers.enable_rentals_in_shop diff --git a/content/minor_arcana/king_of_wands.lua b/content/minor_arcana/king_of_wands.lua index 8038236b..0280f072 100644 --- a/content/minor_arcana/king_of_wands.lua +++ b/content/minor_arcana/king_of_wands.lua @@ -1,5 +1,10 @@ PB_UTIL.MinorArcana { key = 'king_of_wands', + attributes = { + 'generation', + 'joker', + 'rarity' + }, atlas = 'minor_arcana_atlas', pos = { x = 6, y = 3 }, paperback_credit = { diff --git a/content/minor_arcana/knight_of_cups.lua b/content/minor_arcana/knight_of_cups.lua index 2cd4a742..460dc2f2 100644 --- a/content/minor_arcana/knight_of_cups.lua +++ b/content/minor_arcana/knight_of_cups.lua @@ -4,6 +4,10 @@ PB_UTIL.MinorArcana { min_highlighted = 2, max_highlighted = 2 }, + attributes = { + 'modify_card', + 'destroy_card' + }, atlas = 'minor_arcana_atlas', pos = { x = 4, y = 1 }, paperback_credit = { diff --git a/content/minor_arcana/knight_of_pentacles.lua b/content/minor_arcana/knight_of_pentacles.lua index adf12a6e..6e2e86ab 100644 --- a/content/minor_arcana/knight_of_pentacles.lua +++ b/content/minor_arcana/knight_of_pentacles.lua @@ -15,6 +15,11 @@ end PB_UTIL.MinorArcana { key = 'knight_of_pentacles', + attributes = { + 'reroll', + 'shop', + 'economy' + }, atlas = 'minor_arcana_atlas', pos = { x = 4, y = 7 }, paperback_credit = { diff --git a/content/minor_arcana/knight_of_swords.lua b/content/minor_arcana/knight_of_swords.lua index 34a3b556..3676692b 100644 --- a/content/minor_arcana/knight_of_swords.lua +++ b/content/minor_arcana/knight_of_swords.lua @@ -1,5 +1,11 @@ PB_UTIL.MinorArcana { key = 'knight_of_swords', + attributes = { + 'generation', + 'tarot', + 'minor_arcana', + 'consumable' + }, atlas = 'minor_arcana_atlas', pos = { x = 4, y = 5 }, paperback_credit = { diff --git a/content/minor_arcana/knight_of_wands.lua b/content/minor_arcana/knight_of_wands.lua index 59fcde2c..0d4fbae8 100644 --- a/content/minor_arcana/knight_of_wands.lua +++ b/content/minor_arcana/knight_of_wands.lua @@ -1,5 +1,9 @@ PB_UTIL.MinorArcana { key = 'knight_of_wands', + attributes = { + 'generation', + 'tag' + }, atlas = 'minor_arcana_atlas', pos = { x = 4, y = 3 }, paperback_credit = { diff --git a/content/minor_arcana/nine_of_cups.lua b/content/minor_arcana/nine_of_cups.lua index cc951672..06d8aa83 100644 --- a/content/minor_arcana/nine_of_cups.lua +++ b/content/minor_arcana/nine_of_cups.lua @@ -5,6 +5,12 @@ PB_UTIL.MinorArcana { max_jokers = 1 } }, + attributes = { + 'destroy_card', + 'generation', + 'joker', + 'rarity' + }, atlas = 'minor_arcana_atlas', pos = { x = 1, y = 1 }, paperback_credit = { diff --git a/content/minor_arcana/nine_of_pentacles.lua b/content/minor_arcana/nine_of_pentacles.lua index 01c66ff3..f0f4ae18 100644 --- a/content/minor_arcana/nine_of_pentacles.lua +++ b/content/minor_arcana/nine_of_pentacles.lua @@ -4,6 +4,10 @@ PB_UTIL.MinorArcana { max_highlighted = 1, paperclip = 'paperback_purple_clip' }, + attributes = { + 'modify_card', + 'paperclip' + }, atlas = 'minor_arcana_atlas', pos = { x = 1, y = 7 }, paperback_credit = { diff --git a/content/minor_arcana/nine_of_swords.lua b/content/minor_arcana/nine_of_swords.lua index 619cedbb..2734ac4b 100644 --- a/content/minor_arcana/nine_of_swords.lua +++ b/content/minor_arcana/nine_of_swords.lua @@ -6,6 +6,10 @@ PB_UTIL.MinorArcana { money = 5, } }, + attributes = { + 'destroy_card', + 'economy' + }, atlas = 'minor_arcana_atlas', pos = { x = 1, y = 5 }, paperback_credit = { diff --git a/content/minor_arcana/nine_of_wands.lua b/content/minor_arcana/nine_of_wands.lua index 2dafa6ed..bc4b88a7 100644 --- a/content/minor_arcana/nine_of_wands.lua +++ b/content/minor_arcana/nine_of_wands.lua @@ -4,6 +4,10 @@ PB_UTIL.MinorArcana { max_highlighted = 2, mod_conv = 'm_paperback_bandaged' }, + attributes = { + 'modify_card', + 'enhancements' + }, atlas = 'minor_arcana_atlas', pos = { x = 1, y = 3 }, unlocked = true, diff --git a/content/minor_arcana/page_of_cups.lua b/content/minor_arcana/page_of_cups.lua index a46ce109..9403c9a1 100644 --- a/content/minor_arcana/page_of_cups.lua +++ b/content/minor_arcana/page_of_cups.lua @@ -4,6 +4,10 @@ PB_UTIL.MinorArcana { paperclip = 'paperback_white_clip', max_highlighted = 3 }, + attributes = { + 'modify_card', + 'paperclip' + }, atlas = 'minor_arcana_atlas', pos = { x = 3, y = 1 }, paperback_credit = { diff --git a/content/minor_arcana/page_of_pentacles.lua b/content/minor_arcana/page_of_pentacles.lua index 4c2055a8..f1ad0af5 100644 --- a/content/minor_arcana/page_of_pentacles.lua +++ b/content/minor_arcana/page_of_pentacles.lua @@ -4,6 +4,10 @@ PB_UTIL.MinorArcana { max_highlighted = 2, mod_conv = 'm_paperback_sleeved' }, + attributes = { + 'modify_card', + 'enhancements' + }, atlas = 'minor_arcana_atlas', pos = { x = 3, y = 7 }, paperback_credit = { diff --git a/content/minor_arcana/page_of_swords.lua b/content/minor_arcana/page_of_swords.lua index a3937828..812f7049 100644 --- a/content/minor_arcana/page_of_swords.lua +++ b/content/minor_arcana/page_of_swords.lua @@ -4,6 +4,10 @@ PB_UTIL.MinorArcana { max_highlighted = 2, mod_conv = 'm_paperback_domino' }, + attributes = { + 'modify_card', + 'enhancements' + }, atlas = 'minor_arcana_atlas', pos = { x = 3, y = 5 }, paperback_credit = { diff --git a/content/minor_arcana/page_of_wands.lua b/content/minor_arcana/page_of_wands.lua index 0e3fe593..586ca40e 100644 --- a/content/minor_arcana/page_of_wands.lua +++ b/content/minor_arcana/page_of_wands.lua @@ -4,6 +4,10 @@ PB_UTIL.MinorArcana { paperclip = 'paperback_orange_clip', max_highlighted = 3 }, + attributes = { + 'modify_card', + 'paperclip' + }, atlas = 'minor_arcana_atlas', pos = { x = 3, y = 3 }, paperback_credit = { diff --git a/content/minor_arcana/queen_of_cups.lua b/content/minor_arcana/queen_of_cups.lua index 581cd90a..1dcdf12e 100644 --- a/content/minor_arcana/queen_of_cups.lua +++ b/content/minor_arcana/queen_of_cups.lua @@ -4,6 +4,10 @@ PB_UTIL.MinorArcana { max_highlighted = 2, mod_conv = 'm_paperback_ceramic' }, + attributes = { + 'modify_card', + 'enhancements' + }, atlas = 'minor_arcana_atlas', pos = { x = 5, y = 1 }, unlocked = true, diff --git a/content/minor_arcana/queen_of_pentacles.lua b/content/minor_arcana/queen_of_pentacles.lua index 75264dec..c3da1db6 100644 --- a/content/minor_arcana/queen_of_pentacles.lua +++ b/content/minor_arcana/queen_of_pentacles.lua @@ -6,6 +6,10 @@ PB_UTIL.MinorArcana { min_highlighted = 2, max_highlighted = 2, }, + attributes = { + 'modify_card', + 'rank' + }, paperback_credit = { coder = { 'metanite' } }, diff --git a/content/minor_arcana/queen_of_swords.lua b/content/minor_arcana/queen_of_swords.lua index 6604e39d..4fd55f65 100644 --- a/content/minor_arcana/queen_of_swords.lua +++ b/content/minor_arcana/queen_of_swords.lua @@ -3,6 +3,11 @@ PB_UTIL.MinorArcana { config = { targets = 3, }, + attributes = { + 'modify_card', + 'suit', + 'full_deck' + }, atlas = 'minor_arcana_atlas', pos = { x = 5, y = 5 }, paperback_credit = { diff --git a/content/minor_arcana/queen_of_wands.lua b/content/minor_arcana/queen_of_wands.lua index 6a274eb9..8863d484 100644 --- a/content/minor_arcana/queen_of_wands.lua +++ b/content/minor_arcana/queen_of_wands.lua @@ -7,6 +7,11 @@ PB_UTIL.MinorArcana { odds = 3 } }, + attributes = { + 'chance', + 'joker', + 'editions' + }, paperback_credit = { coder = { 'srockw' } }, diff --git a/content/minor_arcana/seven_of_cups.lua b/content/minor_arcana/seven_of_cups.lua index d3d13fc1..a736b331 100644 --- a/content/minor_arcana/seven_of_cups.lua +++ b/content/minor_arcana/seven_of_cups.lua @@ -3,6 +3,10 @@ PB_UTIL.MinorArcana { config = { max_highlighted = 2 }, + attributes = { + 'modify_card', + 'enhancements' + }, atlas = 'minor_arcana_atlas', pos = { x = 6, y = 0 }, paperback_credit = { diff --git a/content/minor_arcana/seven_of_pentacles.lua b/content/minor_arcana/seven_of_pentacles.lua index a2a5fa0b..79e27080 100644 --- a/content/minor_arcana/seven_of_pentacles.lua +++ b/content/minor_arcana/seven_of_pentacles.lua @@ -4,6 +4,10 @@ PB_UTIL.MinorArcana { max_highlighted = 2, paperclip = 'paperback_green_clip' }, + attributes = { + 'modify_card', + 'paperclip' + }, atlas = 'minor_arcana_atlas', pos = { x = 6, y = 6 }, paperback_credit = { diff --git a/content/minor_arcana/seven_of_swords.lua b/content/minor_arcana/seven_of_swords.lua index 2ec93148..df1690f1 100644 --- a/content/minor_arcana/seven_of_swords.lua +++ b/content/minor_arcana/seven_of_swords.lua @@ -4,6 +4,10 @@ PB_UTIL.MinorArcana { max_highlighted = 1, paperclip = 'paperback_gold_clip' }, + attributes = { + 'modify_card', + 'paperclip' + }, atlas = 'minor_arcana_atlas', pos = { x = 6, y = 4 }, paperback_credit = { diff --git a/content/minor_arcana/seven_of_wands.lua b/content/minor_arcana/seven_of_wands.lua index df3315eb..5a4adac9 100644 --- a/content/minor_arcana/seven_of_wands.lua +++ b/content/minor_arcana/seven_of_wands.lua @@ -1,5 +1,9 @@ PB_UTIL.MinorArcana { key = 'seven_of_wands', + attributes = { + 'generation', + 'tag' + }, atlas = 'minor_arcana_atlas', pos = { x = 6, y = 2 }, paperback_credit = { diff --git a/content/minor_arcana/six_of_cups.lua b/content/minor_arcana/six_of_cups.lua index fb5fc4d6..c6ea08a3 100644 --- a/content/minor_arcana/six_of_cups.lua +++ b/content/minor_arcana/six_of_cups.lua @@ -4,6 +4,9 @@ PB_UTIL.MinorArcana { max_highlighted = 1, money_cap = 30, }, + attributes = { + 'economy' + }, atlas = 'minor_arcana_atlas', pos = { x = 5, y = 0 }, paperback_credit = { diff --git a/content/minor_arcana/six_of_pentacles.lua b/content/minor_arcana/six_of_pentacles.lua index 19b91f32..7b9c26f4 100644 --- a/content/minor_arcana/six_of_pentacles.lua +++ b/content/minor_arcana/six_of_pentacles.lua @@ -1,5 +1,9 @@ PB_UTIL.MinorArcana { key = 'six_of_pentacles', + attributes = { + 'generation', + 'tag' + }, atlas = 'minor_arcana_atlas', pos = { x = 5, y = 6 }, paperback_credit = { diff --git a/content/minor_arcana/six_of_swords.lua b/content/minor_arcana/six_of_swords.lua index 976e1eda..ee20f013 100644 --- a/content/minor_arcana/six_of_swords.lua +++ b/content/minor_arcana/six_of_swords.lua @@ -4,6 +4,10 @@ PB_UTIL.MinorArcana { max_highlighted = 2, paperclip = 'paperback_yellow_clip' }, + attributes = { + 'modify_card', + 'paperclip' + }, atlas = 'minor_arcana_atlas', pos = { x = 5, y = 4 }, paperback_credit = { diff --git a/content/minor_arcana/six_of_wands.lua b/content/minor_arcana/six_of_wands.lua index c3a65a39..0ee56a0d 100644 --- a/content/minor_arcana/six_of_wands.lua +++ b/content/minor_arcana/six_of_wands.lua @@ -4,6 +4,10 @@ PB_UTIL.MinorArcana { max_highlighted = 2, mod_conv = 'm_paperback_wrapped' }, + attributes = { + 'modify_card', + 'enhancements' + }, atlas = 'minor_arcana_atlas', pos = { x = 5, y = 2 }, paperback_credit = { diff --git a/content/minor_arcana/ten_of_cups.lua b/content/minor_arcana/ten_of_cups.lua index 6828d49a..dff06ea0 100644 --- a/content/minor_arcana/ten_of_cups.lua +++ b/content/minor_arcana/ten_of_cups.lua @@ -7,6 +7,11 @@ PB_UTIL.MinorArcana { odds = 3 } }, + attributes = { + 'modify_card', + 'editions', + 'chance' + }, paperback_credit = { coder = { 'srockw' } }, diff --git a/content/minor_arcana/ten_of_pentacles.lua b/content/minor_arcana/ten_of_pentacles.lua index da05db62..ce33d71f 100644 --- a/content/minor_arcana/ten_of_pentacles.lua +++ b/content/minor_arcana/ten_of_pentacles.lua @@ -11,12 +11,17 @@ PB_UTIL.MinorArcana { min = 5, max = 10 } }, + attributes = { + 'economy' + }, loc_vars = function(self, info_queue, card) - return { vars = { - card.ability.extra.min, - card.ability.extra.max - } } + return { + vars = { + card.ability.extra.min, + card.ability.extra.max + } + } end, can_use = function(self, card) diff --git a/content/minor_arcana/ten_of_swords.lua b/content/minor_arcana/ten_of_swords.lua index 6c75ad4b..3a95c710 100644 --- a/content/minor_arcana/ten_of_swords.lua +++ b/content/minor_arcana/ten_of_swords.lua @@ -3,6 +3,11 @@ PB_UTIL.MinorArcana { config = { max_highlighted = 1, }, + attributes = { + 'destroy_card', + 'rank', + 'full_deck' + }, atlas = 'minor_arcana_atlas', pos = { x = 2, y = 5 }, paperback_credit = { diff --git a/content/minor_arcana/ten_of_wands.lua b/content/minor_arcana/ten_of_wands.lua index 775d8bc8..3b780816 100644 --- a/content/minor_arcana/ten_of_wands.lua +++ b/content/minor_arcana/ten_of_wands.lua @@ -6,6 +6,12 @@ PB_UTIL.MinorArcana { min_highlighted = 3, max_highlighted = 3 }, + attributes = { + 'modify_card', + 'destroy_card', + 'chips', + 'perma_bonus' + }, paperback_credit = { coder = { 'srockw' } }, diff --git a/content/minor_arcana/three_of_cups.lua b/content/minor_arcana/three_of_cups.lua index d666f9eb..5be2d897 100644 --- a/content/minor_arcana/three_of_cups.lua +++ b/content/minor_arcana/three_of_cups.lua @@ -4,6 +4,10 @@ PB_UTIL.MinorArcana { paperclip = 'paperback_black_clip', max_highlighted = 1 }, + attributes = { + 'modify_card', + 'paperclip' + }, atlas = 'minor_arcana_atlas', pos = { x = 2, y = 0 }, paperback_credit = { diff --git a/content/minor_arcana/three_of_pentacles.lua b/content/minor_arcana/three_of_pentacles.lua index 3b656918..7a678f66 100644 --- a/content/minor_arcana/three_of_pentacles.lua +++ b/content/minor_arcana/three_of_pentacles.lua @@ -6,6 +6,10 @@ PB_UTIL.MinorArcana { min_highlighted = 3, max_highlighted = 3, }, + attributes = { + 'modify_card', + 'enhancements' + }, paperback_credit = { artist = { 'ari' }, coder = { 'metanite' } diff --git a/content/minor_arcana/three_of_swords.lua b/content/minor_arcana/three_of_swords.lua index 3077e20d..71f9a740 100644 --- a/content/minor_arcana/three_of_swords.lua +++ b/content/minor_arcana/three_of_swords.lua @@ -4,6 +4,10 @@ PB_UTIL.MinorArcana { max_highlighted = 2, mod_conv = 'm_paperback_stained' }, + attributes = { + 'modify_card', + 'enhancements' + }, atlas = 'minor_arcana_atlas', pos = { x = 2, y = 4 }, paperback_credit = { diff --git a/content/minor_arcana/three_of_wands.lua b/content/minor_arcana/three_of_wands.lua index a4c4992b..3932a43c 100644 --- a/content/minor_arcana/three_of_wands.lua +++ b/content/minor_arcana/three_of_wands.lua @@ -3,6 +3,10 @@ PB_UTIL.MinorArcana { config = { max_highlighted = 1 }, + attributes = { + 'generation', + 'playing_card' + }, atlas = 'minor_arcana_atlas', pos = { x = 2, y = 2 }, paperback_credit = { diff --git a/content/minor_arcana/two_of_cups.lua b/content/minor_arcana/two_of_cups.lua index c8f79e20..3292800c 100644 --- a/content/minor_arcana/two_of_cups.lua +++ b/content/minor_arcana/two_of_cups.lua @@ -1,5 +1,9 @@ PB_UTIL.MinorArcana { key = 'two_of_cups', + attributes = { + 'generation', + 'tag' + }, atlas = 'minor_arcana_atlas', pos = { x = 1, y = 0 }, paperback_credit = { diff --git a/content/minor_arcana/two_of_pentacles.lua b/content/minor_arcana/two_of_pentacles.lua index d0379083..ea771524 100644 --- a/content/minor_arcana/two_of_pentacles.lua +++ b/content/minor_arcana/two_of_pentacles.lua @@ -1,5 +1,8 @@ PB_UTIL.MinorArcana { key = 'two_of_pentacles', + attributes = { + 'joker' + }, atlas = 'minor_arcana_atlas', pos = { x = 1, y = 6 }, paperback_credit = { diff --git a/content/minor_arcana/two_of_swords.lua b/content/minor_arcana/two_of_swords.lua index f06ad020..30cc9179 100644 --- a/content/minor_arcana/two_of_swords.lua +++ b/content/minor_arcana/two_of_swords.lua @@ -3,6 +3,10 @@ PB_UTIL.MinorArcana { config = { max_highlighted = 3, }, + attributes = { + 'modify_card', + 'suit' + }, atlas = 'minor_arcana_atlas', pos = { x = 1, y = 4 }, paperback_credit = { diff --git a/content/minor_arcana/two_of_wands.lua b/content/minor_arcana/two_of_wands.lua index a2bfa54b..07651e9b 100644 --- a/content/minor_arcana/two_of_wands.lua +++ b/content/minor_arcana/two_of_wands.lua @@ -1,5 +1,11 @@ PB_UTIL.MinorArcana { key = 'two_of_wands', + attributes = { + 'generation', + 'planet', + 'consumable', + 'hand_type' + }, atlas = 'minor_arcana_atlas', pos = { x = 1, y = 2 }, paperback_credit = { diff --git a/content/paperclip/black_clip.lua b/content/paperclip/black_clip.lua index 6bb2ff5e..de80bf72 100644 --- a/content/paperclip/black_clip.lua +++ b/content/paperclip/black_clip.lua @@ -1,5 +1,8 @@ PB_UTIL.Paperclip { key = 'black_clip', + attributes = { + 'retrigger' + }, atlas = 'paperclips_atlas', pos = { x = 1, y = 0 }, badge_colour = G.C.PAPERBACK_BLACK, diff --git a/content/paperclip/blue_clip.lua b/content/paperclip/blue_clip.lua index 0898d587..16288b35 100644 --- a/content/paperclip/blue_clip.lua +++ b/content/paperclip/blue_clip.lua @@ -7,6 +7,9 @@ PB_UTIL.Paperclip { x_chips_base = 1, x_chips_mod = 0.1 }, + attributes = { + 'xchips' + }, loc_vars = function(self, info_queue, card) local clips = PB_UTIL.count_paperclips { diff --git a/content/paperclip/gold_clip.lua b/content/paperclip/gold_clip.lua index 86d21aef..cf43ad03 100644 --- a/content/paperclip/gold_clip.lua +++ b/content/paperclip/gold_clip.lua @@ -9,6 +9,9 @@ PB_UTIL.Paperclip { money = 1, max_money = 10, }, + attributes = { + 'economy' + }, loc_vars = function(self, info_queue, card) return { diff --git a/content/paperclip/green_clip.lua b/content/paperclip/green_clip.lua index 38c3dddb..610e32e9 100644 --- a/content/paperclip/green_clip.lua +++ b/content/paperclip/green_clip.lua @@ -9,6 +9,11 @@ PB_UTIL.Paperclip { mult_minus = 5, odd = 0 }, + attributes = { + 'mult', + 'scaling', + 'discard' + }, loc_vars = function(self, info_queue, card) return { diff --git a/content/paperclip/orange_clip.lua b/content/paperclip/orange_clip.lua index 1bac5789..6279a4b2 100644 --- a/content/paperclip/orange_clip.lua +++ b/content/paperclip/orange_clip.lua @@ -7,6 +7,9 @@ PB_UTIL.Paperclip { money = 1, every = 2 }, + attributes = { + 'economy' + }, loc_vars = function(self, info_queue, card) local clips = PB_UTIL.count_paperclips { diff --git a/content/paperclip/pink_clip.lua b/content/paperclip/pink_clip.lua index 0df9d42b..2335c0d7 100644 --- a/content/paperclip/pink_clip.lua +++ b/content/paperclip/pink_clip.lua @@ -7,6 +7,9 @@ PB_UTIL.Paperclip { x_mult = 1, x_mult_mod = 0.1 }, + attributes = { + 'xmult' + }, loc_vars = function(self, info_queue, card) return { diff --git a/content/paperclip/platinum_clip.lua b/content/paperclip/platinum_clip.lua index 8397f9be..a7aa39f2 100644 --- a/content/paperclip/platinum_clip.lua +++ b/content/paperclip/platinum_clip.lua @@ -1,5 +1,8 @@ PB_UTIL.Paperclip { key = 'platinum_clip', + attributes = { + 'retrigger' + }, atlas = 'paperclips_atlas', pos = { x = 5, y = 0 }, badge_colour = G.C.PAPERBACK_PLATINUM, diff --git a/content/paperclip/purple_clip.lua b/content/paperclip/purple_clip.lua index 2d5e2b96..7b84e2a6 100644 --- a/content/paperclip/purple_clip.lua +++ b/content/paperclip/purple_clip.lua @@ -8,6 +8,12 @@ PB_UTIL.Paperclip { numerator = 0, denominator = 10 }, + attributes = { + 'generation', + 'tarot', + 'consumable', + 'chance' + }, loc_vars = function(self, info_queue, card) local num, den = SMODS.get_probability_vars(card, card.ability[self.key].numerator, diff --git a/content/paperclip/red_clip.lua b/content/paperclip/red_clip.lua index 7bc91440..30650b63 100644 --- a/content/paperclip/red_clip.lua +++ b/content/paperclip/red_clip.lua @@ -6,6 +6,9 @@ PB_UTIL.Paperclip { config = { mult_mod = 5 }, + attributes = { + 'mult' + }, loc_vars = function(self, info_queue, card) local clips = PB_UTIL.count_paperclips { diff --git a/content/paperclip/white_clip.lua b/content/paperclip/white_clip.lua index a634347c..6aa13665 100644 --- a/content/paperclip/white_clip.lua +++ b/content/paperclip/white_clip.lua @@ -8,6 +8,10 @@ PB_UTIL.Paperclip { chip_mod = 2, chips = 0 }, + attributes = { + 'chips', + 'scaling' + }, loc_vars = function(self, info_queue, card) return { diff --git a/content/paperclip/yellow_clip.lua b/content/paperclip/yellow_clip.lua index 3cbd7615..6eed26dd 100644 --- a/content/paperclip/yellow_clip.lua +++ b/content/paperclip/yellow_clip.lua @@ -12,6 +12,12 @@ PB_UTIL.Paperclip { xmult_odds = 5, xmult = 1.5 }, + attributes = { + 'mult', + 'xmult', + 'economy', + 'chance' + }, loc_vars = function(self, info_queue, card) local clip = card.ability[self.key] diff --git a/content/planet/haumea.lua b/content/planet/haumea.lua index f9093571..c669b815 100644 --- a/content/planet/haumea.lua +++ b/content/planet/haumea.lua @@ -8,5 +8,10 @@ PB_UTIL.Planet { config = { hand_type = 'paperback_Straight Spectrum', softlock = true, + }, + attributes = { + 'hand_type', + 'hand_level', + 'space' } } diff --git a/content/planet/makemake.lua b/content/planet/makemake.lua index bcd71d14..af1435ba 100644 --- a/content/planet/makemake.lua +++ b/content/planet/makemake.lua @@ -8,5 +8,10 @@ PB_UTIL.Planet { config = { hand_type = 'paperback_Spectrum Five', softlock = true, + }, + attributes = { + 'hand_type', + 'hand_level', + 'space' } } diff --git a/content/planet/quaoar.lua b/content/planet/quaoar.lua index 8c2a215e..b6fc1632 100644 --- a/content/planet/quaoar.lua +++ b/content/planet/quaoar.lua @@ -8,5 +8,10 @@ PB_UTIL.Planet { config = { hand_type = 'paperback_Spectrum', softlock = true + }, + attributes = { + 'hand_type', + 'hand_level', + 'space' } } diff --git a/content/planet/sedna.lua b/content/planet/sedna.lua index 86ec56b4..1d4c9edc 100644 --- a/content/planet/sedna.lua +++ b/content/planet/sedna.lua @@ -8,5 +8,10 @@ PB_UTIL.Planet { config = { hand_type = 'paperback_Spectrum House', softlock = true, + }, + attributes = { + 'hand_type', + 'hand_level', + 'space' } } diff --git a/content/spectrals/apostle_of_cups.lua b/content/spectrals/apostle_of_cups.lua index c7caaa5e..1c260365 100644 --- a/content/spectrals/apostle_of_cups.lua +++ b/content/spectrals/apostle_of_cups.lua @@ -5,6 +5,12 @@ SMODS.Consumable { delta = -1 } }, + attributes = { + 'modify_card', + 'editions', + 'negative', + 'joker_slot' + }, set = "Spectral", atlas = 'spectral_atlas', pos = { x = 0, y = 0 }, diff --git a/content/spectrals/apostle_of_pentacles.lua b/content/spectrals/apostle_of_pentacles.lua index 16077b72..9ef8e42c 100644 --- a/content/spectrals/apostle_of_pentacles.lua +++ b/content/spectrals/apostle_of_pentacles.lua @@ -4,6 +4,10 @@ SMODS.Consumable { max_highlighted = 1, paperclip = 'paperback_platinum_clip' }, + attributes = { + 'modify_card', + 'paperclip' + }, set = 'Spectral', atlas = 'spectral_atlas', pos = { x = 3, y = 0 }, diff --git a/content/spectrals/apostle_of_swords.lua b/content/spectrals/apostle_of_swords.lua index 75f3d947..8a27deea 100644 --- a/content/spectrals/apostle_of_swords.lua +++ b/content/spectrals/apostle_of_swords.lua @@ -5,6 +5,10 @@ SMODS.Consumable { ante_mod = -2 } }, + attributes = { + 'destroy_card', + 'ante' + }, set = "Spectral", atlas = 'spectral_atlas', pos = { x = 2, y = 0 }, diff --git a/content/spectrals/apostle_of_wands.lua b/content/spectrals/apostle_of_wands.lua index 665cf47d..9b6889d3 100644 --- a/content/spectrals/apostle_of_wands.lua +++ b/content/spectrals/apostle_of_wands.lua @@ -5,6 +5,10 @@ SMODS.Consumable { delta = -1 } }, + attributes = { + 'generation', + 'joker' + }, set = "Spectral", atlas = 'spectral_atlas', pos = { x = 1, y = 0 }, diff --git a/content/tag/angel_investment.lua b/content/tag/angel_investment.lua index 732240ca..fffe94b5 100644 --- a/content/tag/angel_investment.lua +++ b/content/tag/angel_investment.lua @@ -5,6 +5,9 @@ SMODS.Tag { every = 5, max = 100, }, + attributes = { + 'economy' + }, atlas = 'tags_atlas', pos = { x = 0, y = 0 }, discovered = false, diff --git a/content/tag/breaking.lua b/content/tag/breaking.lua index 60b089ae..cdc377f4 100644 --- a/content/tag/breaking.lua +++ b/content/tag/breaking.lua @@ -3,6 +3,9 @@ if SMODS.Tags.tag_bunc_breaking then return end SMODS.Tag { key = 'breaking', + attributes = { + 'boss_blind' + }, atlas = 'tags_atlas', pos = { x = 4, y = 0 }, discovered = false, diff --git a/content/tag/dichrome.lua b/content/tag/dichrome.lua index 86ed42f7..0457747c 100644 --- a/content/tag/dichrome.lua +++ b/content/tag/dichrome.lua @@ -1,5 +1,10 @@ SMODS.Tag { key = 'dichrome', + attributes = { + 'joker', + 'editions', + 'shop' + }, atlas = 'tags_atlas', pos = { x = 1, y = 0 }, discovered = false, diff --git a/content/tag/divination.lua b/content/tag/divination.lua index ba917f43..ba68a77e 100644 --- a/content/tag/divination.lua +++ b/content/tag/divination.lua @@ -1,5 +1,8 @@ SMODS.Tag { key = 'divination', + attributes = { + 'booster' + }, atlas = 'tags_atlas', pos = { x = 2, y = 0 }, discovered = false, diff --git a/content/tag/high_risk.lua b/content/tag/high_risk.lua index 418cfb61..f447a3d1 100644 --- a/content/tag/high_risk.lua +++ b/content/tag/high_risk.lua @@ -6,6 +6,11 @@ SMODS.Tag { config = { money = 25 }, + attributes = { + 'economy', + 'boss_blind', + 'large_blind' + }, in_pool = function(self, args) return false diff --git a/content/voucher/celtic_cross.lua b/content/voucher/celtic_cross.lua index a62fdd07..7a2df85d 100644 --- a/content/voucher/celtic_cross.lua +++ b/content/voucher/celtic_cross.lua @@ -3,6 +3,11 @@ SMODS.Voucher { config = { triggered = false }, + attributes = { + 'booster', + 'boss_blind', + 'shop' + }, atlas = 'vouchers_atlas', pos = { x = 0, y = 0 }, discovered = false, diff --git a/content/voucher/rabbit_protocol.lua b/content/voucher/rabbit_protocol.lua index d9ca910c..732a93b7 100644 --- a/content/voucher/rabbit_protocol.lua +++ b/content/voucher/rabbit_protocol.lua @@ -1,5 +1,11 @@ SMODS.Voucher { key = 'rabbit_protocol', + attributes = { + 'boss_blind', + 'on_sell', + 'ego_gift', + 'consumable' + }, atlas = 'vouchers_atlas', pos = { x = 2, y = 1 }, unlocked = false, diff --git a/content/voucher/second_trumpet.lua b/content/voucher/second_trumpet.lua index a7976b7d..dc2d8dab 100644 --- a/content/voucher/second_trumpet.lua +++ b/content/voucher/second_trumpet.lua @@ -3,6 +3,11 @@ SMODS.Voucher { config = { a_slot = 1, }, + attributes = { + 'consumable_slot', + 'ego_gift', + 'consumable' + }, atlas = 'vouchers_atlas', pos = { x = 2, y = 0 }, unlocked = true, @@ -52,10 +57,11 @@ function Card.add_to_deck(self, ...) SMODS.Centers['v_paperback_second_trumpet']:update_second_trumpet() end end + local remove_from_deck_ref = Card.remove_from_deck function Card.remove_from_deck(self, ...) remove_from_deck_ref(self, ...) if PB_UTIL.is_ego_gift(self) then SMODS.Centers['v_paperback_second_trumpet']:update_second_trumpet() end -end \ No newline at end of file +end diff --git a/content/voucher/soothsay.lua b/content/voucher/soothsay.lua index 5bf3c631..3e1fce6a 100644 --- a/content/voucher/soothsay.lua +++ b/content/voucher/soothsay.lua @@ -1,5 +1,10 @@ SMODS.Voucher { key = 'soothsay', + attributes = { + 'shop', + 'minor_arcana', + 'consumable' + }, atlas = 'vouchers_atlas', pos = { x = 0, y = 1 }, discovered = false, diff --git a/utilities/definitions/misc.lua b/utilities/definitions/misc.lua index 386f52fa..9041c99a 100644 --- a/utilities/definitions/misc.lua +++ b/utilities/definitions/misc.lua @@ -483,7 +483,6 @@ PB_UTIL.ENABLED_ATTRIBUTES = { 'minor_arcana', -- related to minor arcana 'ego_gift', -- related to ego gifts 'negative', -- related to the negative edition - 'ante', -- changes ante 'music', -- based on a song/album 'secret', -- has a secret trigger 'red', -- it's red diff --git a/utilities/misc_functions.lua b/utilities/misc_functions.lua index 294725cb..f31e94a4 100644 --- a/utilities/misc_functions.lua +++ b/utilities/misc_functions.lua @@ -163,7 +163,7 @@ end ---@param path string function PB_UTIL.register_items(items, path) for i = 1, #items do - SMODS.load_file(path .. "/" .. items[i] .. ".lua")() + assert(SMODS.load_file(path .. "/" .. items[i] .. ".lua"))() end end From 3939cae21e50759ef5bf3d6a295212e04c5fca62 Mon Sep 17 00:00:00 2001 From: vitellaryjr <43586575+vitellaryjr@users.noreply.github.com> Date: Thu, 18 Jun 2026 21:29:11 -0700 Subject: [PATCH 2/2] missed some --- content/joker/claw.lua | 15 +++++++++------ content/joker/red_sun_in_the_sky.lua | 15 +++++++++------ 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/content/joker/claw.lua b/content/joker/claw.lua index 626e3710..421d7a17 100644 --- a/content/joker/claw.lua +++ b/content/joker/claw.lua @@ -11,7 +11,9 @@ SMODS.Joker { attributes = { 'mult', 'rank', - 'three' + 'three', + 'scaling', + 'reset' }, rarity = 1, pos = { x = 10, y = 1 }, @@ -56,11 +58,12 @@ SMODS.Joker { end if context.end_of_round and not context.blueprint and context.main_eval then - card.ability.extra.mult = card.ability.extra.starting_mult - - return { - message = localize('k_reset') - } + SMODS.reset_card(card, { + ref_table = card.ability.extra, + ref_value = 'mult', + reset_value = card.ability.extra.starting_mult + }) + return nil, true end end, diff --git a/content/joker/red_sun_in_the_sky.lua b/content/joker/red_sun_in_the_sky.lua index 55e88691..d0d77695 100644 --- a/content/joker/red_sun_in_the_sky.lua +++ b/content/joker/red_sun_in_the_sky.lua @@ -10,7 +10,9 @@ SMODS.Joker { 'mult', 'suit', 'light', - 'red' + 'red', + 'scaling', + 'reset' }, rarity = 1, pos = { x = 19, y = 5 }, @@ -48,11 +50,12 @@ SMODS.Joker { end end if context.end_of_round and context.main_eval then - card.ability.extra.mult = 0 - return { - message = localize('k_reset'), - colour = G.C.ORANGE - } + SMODS.reset_card(card, { + ref_table = card.ability.extra, + ref_value = 'mult', + reset_value = 0 + }) + return nil, true end end }