From 4cfe3fa7c26300e8fa1408c3cce6bc4e9632bf9f Mon Sep 17 00:00:00 2001 From: Emik Date: Tue, 25 Mar 2025 19:55:31 +0100 Subject: [PATCH] Add blind art --- assets/1x/blind.png | Bin 4448 -> 10757 bytes assets/2x/blind.png | Bin 1375 -> 2653 bytes src/blind.lua | 111 +++++++++++++++++++++++++------------------- 3 files changed, 63 insertions(+), 48 deletions(-) diff --git a/assets/1x/blind.png b/assets/1x/blind.png index 6cca46610b1469a54e02c3b55b626a65c115a00b..972d694df79a6f9bc328f345cc3090b78942ca17 100644 GIT binary patch literal 10757 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 B-*gL zrxs#%e_rdrRz6`j{3oLSkxK~Zhq3!#qntHWUW{Vtg0>~le)5H?XxC{X}YQNk@-^sp(6MFOeateXL zp;a>K$wwgIlzg}~M0i-Kb&3zous_%mlU{1bwyH-byqAr7K8)mVC&*2Jm+}Hsb`5dywO{Wx_GaMX*civ%(=!_vaQEBe8QF;nm2KAV z{a-Hyh6(Wc1{tl1ml+G;i-n1zXq+@l$EWjabtyL?niM>B$#LN$3-GH_YBbGW6v<6U zyV+Zi4C)*VS*&}QO{(JDKT1lCUc3GT^5ml}O{&(&V5oZiT4F~)ixQ{-t$N7naZa0m z2ray+F(T5ZaqnY0XuhQ98zP}8z0H7iZw*m2S+M<__2%R_HKpR4#>#toPiQRhB;0XL z?}Cig)8U1wB57otH_R}>)t-;R@mQ!t0d|?p>y$a3T@uazWA-B#4@-h%GZtp`dL(OK zZY}*%BXG)i7LFB9HL~A+1x|T1Z~^^mq^`H zB~0k42;zUZARC^l2vQoFMNu$+NK8jF)@>4t6vS`xOpY+)5f!N77eoz)07FTS>Zdh= zi)PVF6wWc?^yIog#U{S1Qm7%69|XsE=CTVCG?fg7NtgTr5Kh8*C&~}^#(@IWw8AB5 zK=sZ)SIjioIqAfbM<#RByH=rd%?rCgq~`7<*jH7pXmEW*)5!;pU2r zK#M_GNxVT_V|Sj2P3tBs++EuVp)ox;R6Gu8^o6Eev{B{qy6%O|Y^tZy74=c^5x3uJ z&f1+w&ur@Iy;M_Vt_7s*-6%q*r}vQsu*YbZUl8dgtf!F90)h9x{vs}4n0n6X;)Uhr zQj41nPHkw?>zQrta&wpPxi+RJmXh0kt_V#~_fb506Nz zD&Vr)(XAUVTS8g>FNh|rfpA$`MLp^$!WcVC8h;1ZyDxR6|M70+wjHsxiyC|#QE0&L zN-Kq(1Azl=XbQLHKUDQU6ndX$fDwS#ibfHsw7Z3q8`eO{t8qGK6-^$H%z$`^q0f29 ztoA>R3(3#*pCv4h95=Kb3+oqB)B%;!GE7Eqwt|RyuLIujNtL?sYH}$n>(5FptfpJ@9@Ze!NGiZwAR>VpdzNx8j)I?U;jz;XDB!6pUpGR6fO4|C#vyB$}AHk_p zO5u{z#?%beBVhi-v9VBarab!Djn{A9IvAVr_XG!+flA$YMk}1 zJ96wM(WZJfjm{IVbo&ajuuV@jD6IBrol3y#9#}zWmA_!#ab(r%VnhZ7-x;JHu7{y2 z#R)iMW>D}kS9}%0r}*WhpaZ0K(5$UVEZ@!mP6#|+*)2LvUJ~{(_~L6-0s1q`b0FH0 zmP5aouV(EgH0_2ccvDtQ|8T3XOEftUn8=W4xa+>^Bi4N&}&S%!w>Rmzfc@9RO zn-1rj!f$@d>)>KrY3$@&=aoBX*};?EKO2_yNMCXV-kr4PhY}6w@qWj!obV77HI-VI zEE?8VRg0V`9__EHEuPcQD)%fVRuwSIJ@XHKk!+pR;IA8&o13{Cb62@tVq1sLg!%sC z1Uuhy@tpz0-vxEu2mPcl%gj(d+!P%|5X^d}h6f%2 z98`RD`Ni;m11*tXHn_`m7$-euRoC|^py}IB&UO>3t>ReQxl%V?4`Jn&n6s`*)$RC; zrW2aVMA7}l(*TdH!-a;B@WK}>{jM>D!Ks(o{pNq1RLBDq5T`gzsowL zG$CdEm|QX^2(F$_Ya*ngP$=O~-^12jIBZn8s(4PFn(J!3zhaGnzCCGUj6hd@em^NT zY3c4UFjuKF|5H%YF*XOS<=7|_CwSw}R!KJJDxAId_h6*&>o-A1zPk02-zt?lbavj- ztZliKo({pw0Fwp55LxEprOv7(5mEo(mAF$8pt=XfFDZYONjQfu8T_c#+(lH_mUH~+q0*;$(r)_t_(vkPKd$DaH*_A#y?2SI$oyLdSC&2k3xHOnj zRv-l7f`s5x6z?1v%QOl?yldJXfQ(-_tC;y!NV=@OBwKTCik;;1T(dOEn~cjRPVyq{ zp#z`tI-Vg*PAf+)aKj>UO#qXJ7sF`E$#SzGz)Ot zBv=UkD4JMLt=ZjYY?>}F)b*V~4(+Yatpx?`*2QbOolIZoaOm-X($MvWf9u+ueI%E1 zPQ?@o9Y>Y3b(TQMg5Xp+=3*5rIIe?h*HObc9M2-}orzSY0b`5u=HtCnKd2$EXGfi; z7KUR241yia#SuSK{V{_f(tYHz+I%xWKUn~4F8Ngk*`hEl>?BsApV9OHIp27YXusgT zsg%es$zNN&m36x~0J=*HShL{_|7xgg1m0P zOci?B4fOP-=E%VOlpX){&Pv$m*T%qc=s!%+11^Hml?a`KTg8rz?&0<7?gEz0 z^r;hYDn=G5fwY39iR!n5_6`-;?We)ZUV1OEfrzSQ)M+^N+^eWDlaJ*VwGP<5HS48Z zFATVSbs^xu8_Nw=^S8Vm|5Xl{l~uHj#{-|aE1pLxem*}OGJ~j`U#)BfC|a#W+|74} z=KC1vDRyUjLkYyuFy0JL`rZB0bDRy7`j+F*bG@?jcT{4Ro?v7x%pz*9vFfn-aoYC- zz>G5G@6YdW%Wd4iIVb+Mz!?`zFsMM>26EfIJd%~!|erB(^a z0ILaGT9Qu??Z32j13?vjSo|TB5s_aYMS#O9aiD zk&h%FMfPfRd+-Q<*a$LIFRIsdVg;k2eGiOx3B@ruw(+5TUMS3}cZnOE_I=eWkt;O^ z;eM!9@s0=b1(5c_IJQH8F_=!wV`jqQ8-QcFTz zH}o=$u`ji@psV}Mj0n<|A|J8)p1o0Wz3W)q9uBAeYLusxE++ZzM>_qv*3>qG^&%ty zySMYm#PYm)7UKNpv6o_lQ{^Q*3J~kN_nCyXQ3$7_Zvw2ewFYME2i}dV^d?8g>3k89 znZOOn62*_=I|kiJXmPI@bT*6%@r3W$;JzHs;3U-@-Gz8x0((B@0qrHs(iI#A2kKR4 zFcm08KDu8O3jO%D2-b~+wqM$5-pl6CYybTZe6!a#>fbBD55&_jI%awRXS5c(WIbsX zLfcWk$$^t2>0-s4k}WBVKbYxZi_$V=rHTC!#?_ky_y5N2KSv8X;}lCPH{g4=-o=Dc Q0000m(lga9zJ`wc526O14*&oF diff --git a/assets/2x/blind.png b/assets/2x/blind.png index 95cda64df5cc6a4b4dadd4f46ca090310e958e59..9054f18c82cf8174476fb638c6a754f94719af4f 100644 GIT binary patch delta 2499 zcmZvec{JNuAI3vdGS(lpwM2i>s5HD9?I>alsVGU&##YUUr3-J`si`H(G?mH}sT387 zQKPg`Q`*M9L?|usl60H#idv!wYOF0q#y5+aO++~0s?w?SH7v!~Y} zylzPItBs8f!!Ex?2n3=M@8|0eaeLVxsT>?T=!w@}sf&1$kRrdOgn`b+{;vBWd`@>Rbc#K;@y|;;+0VZvBa^ij}258)7-dm)dAzC$F|`Lx^rzR^*8GgXvkxY+aonn65T=R zR!7#yTGRFl&?kUk6eQu;$f~UdPARvhpo$H~2DZEEGxKp*cZP6ef&8=^E+Q9f~1hvZzlQgY*URw~7??V)5 z(jUo*VDDJxzFjoy(x+x^GTnpDYN{l2t3CSKmyY5JP#l{I4yTasy&oPbMEY0yp%-qk zhWKpbk6-LImB<}$q*bB4wyZC(&KFDs^1%$IxXKDgE)@mGFA`m~=1pJ>d{TIqd@6wo z-qYy8UpqnNxkwD4GTJTVPjQDuITnGU#nxa&`Is=-WY7*^Ep?-s56v$ifgq^Mj(-!% z^@1*26use{BS@>73vH)g)*mjn&3kG3GQ@Rm&IE?vN=gGfgk(<RQVUUpVglZ^-*ZYJVU3lrxln1?67n z!NN>4S8ilP=*C^m-b0&#F}<``g#!ED1Q^p+#3`+MMF?H8reVzz8{os z;+v&@_l-E7S)`Z5X}$~O1bG5uPieJ&gClTe;)T9_v0WM;Y8DE`#{Ze2%ulCJq z$SrKF-ohD&j-n^HpSi`F&4LDZQ2NT#$pI*~@-iOF^V};*=ADfZT$^agO5o`7%sKKA zBg%V5pv^yadeKSo9SgNvJAC)U)p1XV%MM!8q-2XZ*3xFNM@iwO{yi)SblO6`^w&N8 z-EF0XD>JYW;W_4soC}%(14b0FJK%gK-HrRqBgvs>YMGfHEeuPTU=xo6&&A?UB0DhJQ)q2m;!syG7pg=s=ORv zEj6K{isjA04Xyw%ec<4GT0N4D@$}k53tA-X^qc*ov*ECQ9$78I|FQn0;^N@;fM!?V zxn8ef-9|h4sLh2jDN1ZKnOrI=3#yg{!0;d9xxXSm(Xvd%flw;LV%?$dg;~>$NO&q( z??>sqn|}%o<Ko(m_J(ku*S5iwlg?9`%v5atxY=VRU}*mX3_i)LOR@an**VxFrv1Y^-Nh%3 zds{Jb<#Ux$W6TwG6B17qL)&kRs#t_s!ZWK-eW> zs&=KL#(3Br*XU`1A{(#Z)kVT_XK(vi1(`S0=Y3B2oF{mCg-jQ^d;g0bqHsTS3!lDf zIe;Fs+<5T4d@ILBrWbv*a@B_uSz4GyRXZcNsZ4fM!@kh*G9UVkj$QTW?M{Sb6>a9h zJ8?71MslA>Tb$_|q&h?SbX#e5{3p7}(6TOTdh;ybI~LJH9V@VODyoCejt+m^D`6y* znys4)>-&_~Z);LkyO1i|ZG`VHT@d8T@0EDf{MLMw>Rn?KIzm3KO!vsJvYOZi8w-%n zBf@kE(K6D`0l|wq-&zg`Dxx37MKsD1VE87|bS`P-fT&v~X4gYXj@40vU6OT;(Auo4 z6K69I2?C6h4NH7d-5A`F%QbZO*D7|6;gr`1$y+qtE4Df7W8qKELTW(4_2o0_4ucJU zsghcm!Vqrf;>CP&m2JTky%YT;uJr(1=2Xm31n-(+>^(iiXWN@G`>D?2#25kUotAh? z(^9gy23k2)SXeccm0UZ~ z?(|^p$xSivhm=2kVhv(BkNi7=IH^P$2{}OaM*x$Kp_w%&z=|D0Yc4XqgX_y#_U}mG z{KlK%6Ke!Ye#d}Ppi-j`zeAGlq(d-zfjP=q<;}EzwhrgEnQOnfD7+F*G1J{WXyM9e zDVudP4~@5$r8>8uF5UcW&|*0GpQv-%AQ)^sAJSaGq4;LV-KuYH9T)1Sp(sPa%0PUCI(_C^R0Ky5}_cFmFD=Lqm65UG)J(a{Qn z(Zyge>j|H>zvw@6Di$00EcZSX)N{mQ_F?V!T4OL+4CcdkTCZ{!zMf@8)cNOb-@F6v bh{ZTyF_!px;ft@>AI|(67y^|n delta 1211 zcmV;s1VsDY6yFMv7YalK0{{R3hZs+JrmeHhAeUf5ci!XMZN2D8r*eggmk@8mv@q}4&wToJ^ z5qsJ?9Zc$r%t#qQ$~(lLK|~ee3A^NS7ro?a4(;(`FsZC|aY~+e9)WHQVy__OQUtm& zh@C=zo)K2b+b&kgTI{JRS&T`yl4W!)-8am8=Mm?|AodDUu0)(0gZP9nOYTHhvJ!i$ zOE%^xN*<;BcvT@~1S#(jcY`>wuuE=5U-G((S+YJyS+dxZO8$4!)kZpY#C$=@ha5X% zx)_yQ3$5ff_SBWE%~6+ZPP&#%%7`ZfDIaow?1<@NSaK!QlAG95U$QbsQ?fPbRx&9g zd~vOmZ)0*poL-18^pfvlSaLr{Te2}}QSz*-jdtva`GS-WId;T!A-*t5u3}GG$=w`X z$)ZkLmMo-@q63oI@|Uo3tx=d@a6s>=NnN5%UEp2fZyq72 zpNO55FCa)c=#4?_6ygiJWix6Xord*<-GQ$Y#GFLgbamK^50|1pycwc zp9v+;n3iXi2@UP$?W=cb?= z;xa;f(LY}3qI|q)=jb0VhLif@{&-P|K!=JT<-A@>S^3%B0t7;Qp}*%VchTSTDRcOu zea{#0$Ph8bIZ|$ZcHa<)R){Z(zauhsDgKUVJcloS|Bgrzk&X-zQ=BE`Uv$fJ>HvXw zMu;!O-R0jKb3{83#977hDL>R4@aqV~IYgL25Qz5#i^XEGj$Qu&tjWgY&5ryGle-BZ z5j8q7I65*oD=;uRFfeJA-T{;B2_O+QIx#ppGB_(RFgh?W7|3S5lN|~p9W^>JIXX2s ZD=;uRFfgjxB}D)L002ovPDHLkV1iL=FCG8@ diff --git a/src/blind.lua b/src/blind.lua index ac78084..ecac19f 100644 --- a/src/blind.lua +++ b/src/blind.lua @@ -7,12 +7,73 @@ SMODS.Atlas { atlas_table = "ANIMATION_ATLAS", } +local function disable_improbable() + G.GAME.improbable = nil + local orig = (getmetatable(G.GAME.probabilities) or {}).orig + + if orig then + G.GAME.probabilities = orig + end +end + +if cry_prob then + local orig_prob = cry_prob + + ---@diagnostic disable-next-line: lowercase-global + cry_prob = function(owned, den, rigged) + return G.GAME.improbable and 0 or orig_prob(owned, den, rigged) + end +end + +local orig_update = Game.update + +---@diagnostic disable-next-line: duplicate-set-field +function Game:update(dt) + orig_update(self, dt) + local orig = G.GAME.probabilities + + if not G.GAME.improbable or not getmetatable(orig) then + return + end + + local mt = { + orig = orig, + __index = function (_, k) + return k == "normal" and 0 or orig[k] + end, + __newindex = function (_, k, v) + if k ~= "normal" or v ~= 0 then + orig[k] = v + end + end, + } + + local proxy = {} + setmetatable(proxy, mt) + G.GAME.probabilities = proxy +end + +SMODS.Blind { + key = "improbable", + boss = {min = 1, max = 10}, + boss_colour = HEX("009966"), + atlas = "blind", + pos = {x = 0, y = 0}, + mult = 2, + dollars = 5, + defeat = disable_improbable, + disable = disable_improbable, + set_blind = function(_) + G.GAME.improbable = true + end, +} + SMODS.Blind { key = "nimble", boss = {min = 1, max = 10}, boss_colour = HEX("0291fb"), atlas = "blind", - pos = {x = 0, y = 0}, + pos = {x = 0, y = 1}, mult = 2, dollars = 5, defeat = function(self) @@ -38,7 +99,7 @@ SMODS.Blind { if not self.disabled then self.disabled = true G.E_MANAGER:add_event(Event({ - delay = 0.1, + delay = 1, trigger = "after", func = force_hand, })) @@ -48,49 +109,3 @@ SMODS.Blind { self.disabled = false end, } - -local function disable() - local orig = (getmetatable(G.GAME.probabilities) or {}).orig - - if orig then - G.GAME.probabilities = orig - end -end - -local orig_pseudorandom = pseudorandom - ----@diagnostic disable-next-line: lowercase-global -function pseudorandom(seed, min, max) - return getmetatable(G.GAME.probabilities) and 0 / 0 or orig_pseudorandom(seed, min, max) -end - -SMODS.Blind { - key = "improbable", - boss = {min = 1, max = 10}, - boss_colour = HEX("aaaaaa"), - atlas = "blind", - pos = {x = 0, y = 0}, - mult = 2, - dollars = 5, - defeat = disable, - disable = disable, - set_blind = function(_) - local orig = G.GAME.probabilities - - local mt = { - orig = orig, - __index = function (_, k) - return k == "normal" and 0 or orig[k] - end, - __newindex = function (_, k, v) - if k ~= "normal" or v ~= 0 then - orig[k] = v - end - end, - } - - local proxy = {} - setmetatable(proxy, mt) - G.GAME.probabilities = proxy - end, -}