From 464d330b73b02885552a4be35979200bff439a6a Mon Sep 17 00:00:00 2001 From: Esteban Date: Sun, 8 Oct 2023 21:01:59 -0300 Subject: [PATCH] add arrow-poison tilecodes (#1032) * add arrow-poison tilecodes * format * change arrow tilecodes to load game assets * add tilecodes to valid, fix poison sheet --- src/modlunky2/levels/tile_codes.py | 5 +++++ src/modlunky2/sprites/items.py | 4 ++++ src/modlunky2/sprites/tilecode_extras.py | 9 +++++++++ src/modlunky2/static/images/venom.png | Bin 0 -> 7419 bytes 4 files changed, 18 insertions(+) create mode 100644 src/modlunky2/static/images/venom.png diff --git a/src/modlunky2/levels/tile_codes.py b/src/modlunky2/levels/tile_codes.py index 8ad2a2647..8a4fc378a 100644 --- a/src/modlunky2/levels/tile_codes.py +++ b/src/modlunky2/levels/tile_codes.py @@ -403,6 +403,11 @@ "punishball_attach_top", "punishball_attach_left", "punishball_attach_right", + "arrow_wooden", + "arrow_metal", + "arrow_wooden_poison", + "arrow_metal_poison", + "venom", ] ) diff --git a/src/modlunky2/sprites/items.py b/src/modlunky2/sprites/items.py index e89fb1779..847738415 100644 --- a/src/modlunky2/sprites/items.py +++ b/src/modlunky2/sprites/items.py @@ -28,6 +28,7 @@ class ItemSheet(BaseSpriteLoader): "goldbars": (15, 0, 16, 1), "rock": (0, 1, 1, 2), "arrow_wood": (1, 1, 2, 2), + "arrow_wooden": (1, 1, 2, 2), "arrow_stub": (2, 1, 3, 2), "urn_tall": (3, 1, 4, 2), "urn_short": (4, 1, 5, 2), @@ -94,8 +95,11 @@ class ItemSheet(BaseSpriteLoader): "crossbow_empty_held": (2, 4, 3, 5), "crosbow_loaded_held": (3, 4, 4, 5), "metal_arrow": (4, 4, 5, 5), + "arrow_metal": (4, 4, 5, 5), "wood_arrow_poisoned": (5, 4, 6, 5), "metal_arrow_poisoned": (6, 4, 7, 5), + "arrow_wooden_poison": (5, 4, 6, 5), + "arrow_metal_poison": (6, 4, 7, 5), "telepack": (7, 4, 8, 5), "back_telepack": (7, 4, 8, 5), "telepack_on_rope": (8, 4, 9, 5), diff --git a/src/modlunky2/sprites/tilecode_extras.py b/src/modlunky2/sprites/tilecode_extras.py index 57dfe54c5..1e150d33b 100644 --- a/src/modlunky2/sprites/tilecode_extras.py +++ b/src/modlunky2/sprites/tilecode_extras.py @@ -127,9 +127,18 @@ class StickyTrapSheet(BaseSpriteLoader): } +class PoisonSheet(BaseSpriteLoader): + _sprite_sheet_path = Path("static/images/venom.png") + _chunk_size = 128 + _chunk_map = { + "venom": (0, 0, 1, 1), + } + + EXTRA_TILECODE_CLASSES = [ ChainAndBlocksCeilingSheet, SpikeballTrapSheet, StickyTrapSheet, TreasureVaultChestSheet, + PoisonSheet, ] diff --git a/src/modlunky2/static/images/venom.png b/src/modlunky2/static/images/venom.png new file mode 100644 index 0000000000000000000000000000000000000000..82bf4fd150995255146944cd9d5e427a0b6ef2e4 GIT binary patch literal 7419 zcmbtY1y3AY*IZmnad&rjm&K*Ui^Jk&ad&Ca;$9pI#kIIQ#ob|{XxT09{_^~V@4Ly| zxjDHx$vMd+lZpPQq4*A+6deEnyi-;JYQ1sDe?Ucky9XpK#sL5fYCoM%9$FUO)Glt$ zHuhj^Y7bu*YiesBdm8}2XYDxC$ctPA3;5a=V*sz5h}cRVmf&uK()HA)R&Hf<;mOt{|Dpf{74k*qmVyw!g8Fq2Fl-TL?26wexBwwaG>`}AOK z7BpqxCG6h%W1KneuJKl`EB+z?RDeh9OX<*=mOo}22+3_3!m(9i;9PQt@Li{-45p|U z+83wXxaZn83?+N()rd^9PfOrUO8hcW)(XRCIkHOQR8?!3=#+2GmbyvK^L+fZp*Gyl z#>30Rs49NmIRG0l3w(7ca(4o2?_AY>s;|v)CY_5b+IS_Am!0$dQzi)))FsuU#GZn$ zu*pq^LO#3o^DL{|T(v*N&cb}(5JI_hEeS^hIv%r0P7Ga1URcmt$Pr-JvD>q)yJRo4 zVnQlk>Rhqrq>bDA)a`H?`_mR&bAK$z0Hm$p*VLM~POQ}WY+q={!_8l@pylAGTe)be zn4)LsSZ&|YB&^eDxA?Q-r%7ZqLFJO#WYs#Vgm8d%J*Ic(?!swZ*gE@boZrmNEK`tbn@E+-8dbyT{) zV+h&S+g23Wco{gm>9v#4eX%Yz{_ya7Gh-q!qeXi2^)uvR`R$Wuu;M|#`sRDy+dxQA zVw2~6AVf44d!1u|Y=JqI3ZXd;9Q!-?g!JVf!mHYql-TSEFT-(bAe9RK)rFCKYJ6?L z!Hh@h8dwYp__aZ<>IL5*q2)k#O7DKX!n|DLN!x4R!IKL%QZ5}pX=f29Vasa$NIE%e zPoYq6sQ8_YUV`pgj)o<*8EZ&u`lcPm5e7pUK4*!1xYE@4&}~rod5axfPcA5sTn(VB z61b3=a%l2Zv1gVqj~;W_4Pqv6dl+!ITMf;x@w9FV>+UGSd5`G!x5ji_LZRu4h#k^g zgME%Bg&(cPkE+#9tZZ~S9MMHztA6hs^CEx(04)E=P5{s$*flR^I%W|4q8_IO)t1Ddd+Z-nKSsmuGq6iX`OtL}F`E zSrp9?`}+;~1w6Kqk>o&$t%45~uqU(-zEV9Ik*nRtYw^92?Y3a#mL6N=kCMPD|B!{k zpewSnTtTlkCq&UWOEIk=uL?4&^ieG`L2+{Q5l>-lssh9qPO)ViZ1~$E@`55FbVRVsbjcaM1f;Fp@qkE?zecxrDEE6nx>~ye=m>t6!Zor?DO% zmzCsp2!Gy3-_;M;9#$W93-ggZHpwmkF~@6L*e0kC&i{3f_q{TV`$j=gKe-jEeNGO4rAm_v;6KKBk2J5p`^R+d>w8cSPmSlbql%f# zM+7VaYlWcwwJo-Sh4n!Y2Mq1CqD1?_`rrPoj~uL=FRW5|>D zG25P9{ZAr~0p;b#$u@8nOY>%e0mfZgi93T!Jgo3AMzqqHo#APE*3`rQa?hHr1mycZWt>XYZtGn!dK^B9F;2619u66c7IoFrC!EXi>B~9o z9$x~oRENpX(Q1dd%hO>a`Uuq?Y}6m;n-X%CZ$tj^u|P2p>?1#teoga2P%CK&t~dcz zIx^1b9=-pg3P3z6Du{0S3wrO;7*k3(=#&| z!?Ni5O**7RRjYMvibP0{S>1wn8HI*Mq}mcrm$9Wb?~d3+BE$aL?E(ITPeTUKrcLs> z(zReeR`)l8aMdRJnAucVDgB}bwed^Yu>x2IrNxY@#mo&p!(v(BJ1+2(&U{(&Ezz6( z4-XT6;TvLiVpUhFxQ^x(zBW@izmKz$MK2obq%QKf1pCe67g81ci2_#iCe=n^-k=NI_nrqJG<) zS!4}*cMK-W^E7Hew3qg1_h}1 zr5;Q#4_#NfGJY~dGrutJ?fIHpdw$KR3MFuYy?CRhhsvMR`XW~(pSWgbk?2Uhb#YC* z(Uo`c+o3Gv-qAY7EsCX2X?(N0KrAvqmh1e{ho&b8KQDjCwpS&}|icBZ)k|Xn}na54U+_ZMRj|E|gKfOy8N~pBn zW89(8&s3`+I*UT?cNP6F4R8-49-h*>t|a2#_FCh45dUmDaQU1s)KHKBJh;ZEzc%$3 z&Wok-YY1|J!t9tM;`uLTHYKxgLHyh_9v7m2h=Khe(mXs2MUu?@=*4k??d6YqejU!B zx--j<7J~pSi0CpxHj<~p%-S;9;Q;ajB^hCxKI{caI zy^!ARXoSlW7#ejF!E85%+9*-7Ix+B$OG0hn8|b?E*SJBBSF}EVD_@<7MXWY=e1f81 zpGjZrdSNjR8XnJQU0PY#olYp0vl?y9Ehr;N>SYBVNBkLqEp_^zWeGI?F~nb38QIX8 zq%?T0?rkRO=3q%^(A&3vG5Z!0O-o8b6=-pUT)oRN9PwhGx?Nn#McvzqG1k&=Ce(nj zG=%pK4g*e7N3d9*dR^C}5qn+09Gc3hc#+(owc4d zgxQj^aI=HoADU%$xuhy1xL&F#!cgI}X-GefkAH9Ffo6cnA`Yo4h9&u_{O|+){ZM)p zYKwl%?Me^1Ro}wQT$@-#E9J=nkQ+xb)|#RAOIyu(Dh_udrwM z9wlIoV#5i2pDgOdv8PIVMQO-$T5SFtM?VP>A|T9xf7IO#uUjZJ;a1|P-FyY|2$@kz z_gMFrvpcR%wx5wQ2tBK$qW@M16A`svNI03wB zN|}4SRnT0N4BX#bG~R!J17zh8zZFqDl-1=?4pFg*c-U32<;(#999djQ4 zt@89d(sJn2blYK${|Or^B7CScHTM6Nd_reQfES=wti2(dvwi)WLo?Uq{`K~OJM%d~ zcZj{DX|0C%&1vN=c~9{3-FM3rUes+~t5?si8Pxr9jy@aFf%9=T}Y5Qvs@6 z4$98g%hIjq?XFTP(pudI(4FbOZ-3+(guRr<;rAl=NJEU`2JzbxL-XRM(J? zW7uL?Uo7umS=?_)zcIZyTATt`k1tzl@>pMv{?(7_VfSL~XRRN4ZC<~~y;rE8U{w-f zHSqmBxb!{e^Uh5FJe1hRhW!hPYAI4R;yF-RH1<7}kM(QZVcx`v$ZgjsJ*s(Ry@xfE z@5o5)i_Kc|qdc%;!}Z{fbkz?IJ*tRum@NLhtVqK0XnNSgFoGXf#rf+e!uQ>uZ*ES5 z9d_r*O24tbb*O`xv-v&dn?2vZ$hv)_-sx&^^+PZd-WjA``T?L^kQ3BX$j-ap#5wi? z3K4Ke%tb4KZYaBbT`rd;123Gz0A8}?La}=puh72|7~{u6-=gFtR@XA!Dtn1(V%`bz zG8e!@p<2K7RXUuHJlKzG3OB=4*nJNejughfbRF$(-Cx`*a<-g~8#__`<>(3CYk6DK zDK6a-U{Oz_$$;9F8x^@uFG^c(0k=q}H>5H(Wow+|11r#cc9=Z#i^eo4cE#az<2uO% z#Yhvo7b8=@%k#WMzboj@!jhg)lYiVb8)=FyjGC4@jJQt$dnBD+09Y@BJxn+KV5m%g zhHLN2VS;rWXV*kypFQLqbdlxXk9!8M@c?=18@Tnd*=38xQPWMX)+kentOX$9U?V6{ z$3vCOX%S3eo!E(=gx!kA$0ukdY>qVRXCoHhG1+q&5)Sl;-}eqjW5bzBUlHNCkN9JC zd)K8x7~zZZ0whXVDbgy*{6M|vgUCgwYF1H}a#^Hv@eInC!|0s)F=NXlv}2Tpw3fC*B8cLu9qH!Vvv!lA)7*CNfPNJ`ZA~?VCg;Zk8T_nS7 zgO1NQemzr%5J~?H-mE?GzjZNtNTH>zaf#J%u5Z)RvYABTZz`Sl=_(QI{H=o@hGW-+ zdHgoz*Xv7y1S^ML#*eqbUaGPnl~^2QQLm$uEs3Y2aSN7}S>+71W3|>l*|tw9r9S z_SZ%Gfr|d;a>3p=l`??W4+gKfrxJG=&*6ItGQ}$sB>5D(stE$JS(%LIm2y2iO)cZ{ z$iYA1Ie};)4Ifny#klczT$$5Cn-(#_h{M3=p*<$iU$ZS#uhUJIGJt75p&rZWN&Oy+ zliMnR>I#?G>DcmS)-#nHQZW4|I`tzVlUJ@!uO#r9jNxlwJXF*${RDL+`%t_g+SC%d zad8N7EYHyiUG8%2GxzJiqmhwp8WbPOgTX?tU-$} z^nHg3oSHiuJa+qq7p-&J=_&@S zHDKHh*>i?eB%N?AkrGyiAC)MFp$GMTj&5?+RRkSP1Clp&2?!fwrcNfAg+i9tbPX#(!+>XJ)qp-J+LDR38C7&y43`{& zf4u{!OMcXi&r5KTl=nn#maqFgiTVB52nbBCfp(YlWM)!_s19y~>a|FaneYf`2$c7- zn96i6nHsZL>-tx-eICe=cf4xQGVVi?(TO9jP@u=^ye(seEGPAfF-*h6`^ym=7jfV* zuIy$Hd$q`TW}vJ8slxqj9Z_sfWDq;cqtKmPMb(5`E!%(bYcRg*t__ijG0ikev%9t4 za4o$i>M`7a^1Hd+G11k_8lC{lCqp|~K`*c_!IZ5J#Si|+aX>Mbfr3;daTE2kAdK3|g-3)GQH$Ogx_(l)K6cYt-${)J4eyC4ZChex2gbGOMpLeU z%|_Rz7SYn}UV+-e7?pX9y6bFCFkmsb5*9448&$QVTQ`%Mhz{Xj1XNYwgPVDieJC0+ zk_BadpBW1S7bu1!Wf5EP;WOjFIaxm^D!v7L=z4h^`=P#cieA0!RoYs?d1+jJSAlkE z+A`3wMVPp>Z)OQ@BnU@qXVS_(j;LZ64W8Nk^g=lP(-sZ-bLsy9e zygRi6a>vY85bWAR<`280antkz3R4-Xa=2Q9kHt%c6Y7xFe*gY7tva|cX{G-_;h72^ z0Rr?Zg!BvnuC$Hiwojgw{V@6AEvGxSi>iTXKa1;?Zldpu$({nC%up+T{}rVayw>*4 zfCrsnVX2W>1ct}&*15^TStl&i&?fTQlbn)z#uK zf#CD_d`VkI>Fa*6*tR+gs~?PO`YK8OOM0q7t>1YVM`-DnoW{q~M6pzR84AX_xENp9 zwT;NEUA@0X!_)!|u_TxG^S_x|ogH@j{DEXX5GqC#i>T}D<$=ffOlygES7ccNeibtZ zIW&n=BD$dcZpq;qK56teOtW^(-Bjf`@KOX59slL)^vME9ilKvTA78WevWj^cu5T_p zoO;W+)i2%1vxNn-5K1BTHv^GEJ-CQ2(JSIc;s+{H7wSKy#MFe{sGlq43T>2prkH8Ry40`_QO&#fP&CXup2L(7pl^H8eDfS%~~ar~EGJ*AWZ^|It> z42dji=n1zK_vvE32P-}jsN1-%C(-9WhE{T~C>g_lSQ@c=+qC{!lsmW`0Y>*_zOE~3 zL9NaGb?Uyq`Ha5H$*X@M7HiOIRVE`0P*>F_3Ie;p2w;oe*sEkPt@nSzZ#uQLosvom zB=}$;%z$S%BH=_jbq-ygaz9%WJnpU@=?P99olLk}Fnpg(4CerwkZQQ*uW#}sz$W=( zzxI1Lq$y&Ig$zaj`w`RNBuy~VUH?MjMJ)E2Re0S)K3Ed6=H2M6n3HKyTFuVjh^(nH zg8K7)N(HD9`mvOVV^7`O`DbW}FPOGGMcg3@RE~sALW|+bPG3(G&Ecv;MKiA;p4%L% z^qV}ExA3B_O-u5kM9LqE@WZ_X1HM%!P5OWYvj|jIE5O&m)WzXunvR^l>G3xkD@hkj zCdfOoR7MyoPFI+6)a)1-7qYT2GC)TY6TY&Pkg_tP0)6Di*2uZ$7a^>B(@Ltlu8>?tg=EojpBwq(Edzewldu0%h$TAfR*#M1EZA8T~o$MQdyLr7UxGzI~Elit#zdx1KmGh> zU}t5omP_^hPek$W`KT=PiBLtkGWsZxeF^xaFX zgFrjRqI%(9;p5Wl8AM9>rS$Lvq1a7Kk(eI9_rO3*JN9WMaGBnQ!9dB$E$xHn&mt}r z_H>ezx=IQ@VudSPx`(c>rc8y44fIJvhQA~jilN!@+u;{n&FW6r2JO|E%+bHOb08PC zJ@;vgx39-k68H7)VpS(SU_?OT2l1`f6CZs4Kw7d6#Z1*&3jGQFdZJ`pCQ2qs9$B^+ zB|NztR%QBYo#@{;#)|tCkmc*0s|UF2B)2d1$hPccSQ0NDzFUE2!k5`*PrtSEjl{H1 z?i|p}2#KN}`gT*Q@e-UQSf`{4y2^y&Cz6^rhJLteX!;h5u*TmV^+{uHm)82LSADbrD{4) zAyPpXT$Imi59k><8T+S5SCL5@9=H9AD5jF`utM0Q^Li704@iFm3nen}Nu=bg-=;*A)fM*LNXot8?jdE1GVrD{U&MD>I{|EyvFq(=@M=Cd!JSMNWV1}* zAMa7S8d&yRaW8SiW{W)AN6+&toGdt56XNIDHb1&Fn7?IQ9iK1tUBUypvKRW;<8m-g zR(b(y^t*rY8T@uYBxe(mWb8X`?pl{Q;cc_qR_rM1iB7GcE3kg?W2C$L#>}Dga@42G zExVE{-V77%|Cc-bmsj*+#Js{4YT1jL3WWx~1uR(BpOkIX)d8$;Z`3#ZcjmNH{v&01 L4PcF|dD#B|2-+tp literal 0 HcmV?d00001