From 8bcd0e074db26d95014089cc523fbc2f3145b9cc Mon Sep 17 00:00:00 2001 From: Emik Date: Mon, 27 Apr 2026 16:55:58 +0200 Subject: [PATCH] Add Invisible Tag --- assets/1x/tag.png | Bin 0 -> 644 bytes assets/2x/back.png | Bin 13694 -> 13694 bytes assets/2x/blind.png | Bin 84325 -> 84325 bytes assets/2x/charm.png | Bin 33574 -> 33574 bytes assets/2x/icon.png | Bin 80997 -> 80997 bytes assets/2x/joker.png | Bin 72078 -> 72078 bytes assets/2x/seal.png | Bin 1047 -> 1047 bytes assets/2x/spectral.png | Bin 41904 -> 41904 bytes assets/2x/tag.png | Bin 0 -> 611 bytes localization/en-us.lua | 6 ++++++ manifest.json | 2 +- src/main.lua | 2 +- src/tag.lua | 36 ++++++++++++++++++++++++++++++++++++ 13 files changed, 44 insertions(+), 2 deletions(-) create mode 100644 assets/1x/tag.png create mode 100644 assets/2x/tag.png create mode 100644 src/tag.lua diff --git a/assets/1x/tag.png b/assets/1x/tag.png new file mode 100644 index 0000000000000000000000000000000000000000..26a6efae86c50cd28e3cead4c18a66069476fee3 GIT binary patch literal 644 zcmV-~0(_D; zE#^b%y=|t02~-fi08~ICOkjdI-rr^>rIN|0|5UF_V{RW?T9`luVFLga3Wccu(rmKf zaHxdgfkc=&_5)p&N^EU)HEi*CobBxHvREuOks(`!G_z!*TrNlbUa!YK2Ltx;-TM7L zD;A5|Yh_t6`iKew|D2RaB%*$`Qi(F6E0HMY(ufccjsb&=pghS`%DF^NAXpP31PSF? zT3no3FSfES4KlI5v7sDCM$iB>i>yFoVv|dmq?;tKI=3^_>s`Yi&YoycZIK}Wr z=M^NI&Dw@K#gf9(T;%iN!NH;Y2I+K~*{Iv?IziC9kkjL<143EI%&57@2}E~uWP{9% zH#A!yYahYl%jI(HwcTc$TU!%j$Og;|4I+ny@J99q0!PhcGRko>Gl&cgP~;`Zis`*$ zEDbp-QcX=1KL#MgFO0KeYxTyAxR{w3Po=UkHZ6#awW~y>Iz2nHir0e73PIPpcuKfN z?yfJxo!Z0wO?WceL5+O_zoLi8&f)24G#V4vilTedTr{_FjmU1upF_V^t3}7I?-?=Y*JzDG(KmPst#pAUupuAOesf2A)z2K|^|y>lP{0000bP0l+XkK<#P~J delta 55 zcmZ41#>AO38;d44DH@oB7@AudSX!AHYa19?85l6g+GH{?Ffe$! L`njxgN@xNA*)>AO3jYV6F7=KGB8kmF_np+uITA3Pa8yHv_7%<4%WHK-? OFnGH9xvXH&ih+IyE&qFgGhOFgh?Wm*)~G Ivy-A70nRBA0RR91 delta 50 zcmdmRoN2>xrVVqII9LQZ&6rAETsALNx>+x3U=m_zZe?I;WooQ#U|?lnz#warxq0#; GSw;Y$8V>dV diff --git a/assets/2x/tag.png b/assets/2x/tag.png new file mode 100644 index 0000000000000000000000000000000000000000..ae2db7ed17074ba6f40048a2ebd5eaffddbef700 GIT binary patch literal 611 zcmeAS@N?(olHy`uVBq!ia0y~yU~mCp7G?$phEukEjSLJ73dtTpz6=aiY77hwEes65 z7#J8DUNA6}8Za=tN?>5Hn!&&zUNC1@pbY~9gL;5Zh${mF!{ZPCm+d(B|Nnn$E32}y zG8bp(>C>ilbad?8xpT>qC5H|jibyGz4rnN6U|?V@3GxeOaCmkj4a7;_2(k{)$DK&zzk%?@v1e10#p0i(`n#@wL|i*B({iVS5mH;Lz3p?uZ$!kt91q`5y;!4W95A7AMT55C zu}>FfpMN64dtl#tchd_!Qx%f3jybS7y7XkWe^gUe6jVH>d`$m@ri;ebowh8Y9Ix-h zIX#uTxO49kCf7G=ms*7@IL#G!@|esSjZgmk#USokFnP|}B~o^~ayL(ocz-ds+i#Qd zHMfV6zVeP*b1&r{UczcF{7Tz3hAU6asKv0c`GQBsLFXre29r)}TyDPXyheEL?m2&6 zJQWIDoWK6s=0>$J55viKl3H^r+lutVPGqXx>`7^htC!<`vicA6rDY2)uH@=3WME)W zEpd$~Nl7e8wMs5ZO)N=eFfuSQ(={;BH8Kw|G_f)@wK6c&HZZUt77N-}d(i%Sx73()nLS{ax_^h|#)q{+a*z~JfX=d#Wz Gp$PzYaor>U literal 0 HcmV?d00001 diff --git a/localization/en-us.lua b/localization/en-us.lua index 95e85e5..d7bf53a 100644 --- a/localization/en-us.lua +++ b/localization/en-us.lua @@ -381,6 +381,12 @@ return { }, }, }, + Tag = { + tag_Roland_invisible = { + name = "Invisible Tag", + text = {"{C:attention}Duplicate {}a random Joker", "{C:inactive}(Must have room)"}, + }, + }, }, misc = { challenge_names = { diff --git a/manifest.json b/manifest.json index d6c7912..79de541 100644 --- a/manifest.json +++ b/manifest.json @@ -6,7 +6,7 @@ "author": [ "Emik" ], - "version": "2.2.10", + "version": "2.2.11", "badge_colour": "8BE9FD", "main_file": "src/main.lua", "badge_text_colour": "44475A", diff --git a/src/main.lua b/src/main.lua index 342c32d..d425258 100644 --- a/src/main.lua +++ b/src/main.lua @@ -1,7 +1,7 @@ local qol = assert(SMODS.load_file "src/lib/shared.lua")() or require "lib.shared" local f, q = unpack(qol) -f {"challenge", "spectral", "edition", "tweaks", "blind", "charm", "joker", "back", "seal"}:each(function(v) +f {"challenge", "spectral", "edition", "tweaks", "blind", "charm", "joker", "back", "seal", "tag"}:each(function(v) assert(SMODS.load_file("src/" .. v .. ".lua"))(qol) end) diff --git a/src/tag.lua b/src/tag.lua new file mode 100644 index 0000000..11f7346 --- /dev/null +++ b/src/tag.lua @@ -0,0 +1,36 @@ +local _, q = unpack(... or require "lib.shared") + +SMODS.Atlas { + px = 34, + py = 34, + key = "tag", + path = "tag.png", +} + +SMODS.Tag { + key = "invisible", + atlas = "tag", + min_ante = 2, + pos = {x = 0, y = 0}, + apply = function(_, tag) + local modifiers = G.GAME.modifiers + + if tag.triggered or + not next(G.jokers.cards) or + #G.jokers.cards + (modifiers.Roland_invisible or 0) >= G.jokers.config.card_limit then + return + end + + tag.triggered = true + modifiers.Roland_invisible = (modifiers.Roland_invisible or 0) + 1 + + tag:yep(localize "k_duplicated_ex", G.C.GREY, function() + local copied = pseudorandom_element(G.jokers.cards, pseudoseed "Roland_invisible") + local copy = copy_card(copied) + G.jokers:emplace(copy) + copy:add_to_deck() + modifiers.Roland_invisible = (modifiers.Roland_invisible or 0) - 1 + return true + end) + end, +}