From 858ca62397cbb49650a3c04863430a2ba2c431a9 Mon Sep 17 00:00:00 2001 From: Artjoms_D Date: Mon, 23 Feb 2026 11:51:48 +0200 Subject: [PATCH] da --- images/GoblinWorker/spritePics.zip | Bin 18186 -> 0 bytes images/GoblinWorker/spritePics/01.png | Bin 0 -> 206 bytes images/GoblinWorker/spritePics/02.png | Bin 0 -> 496 bytes images/GoblinWorker/spritePics/03.png | Bin 0 -> 440 bytes images/GoblinWorker/spritePics/04.png | Bin 0 -> 171 bytes images/GoblinWorker/spritePics/05.png | Bin 0 -> 124 bytes images/GoblinWorker/spritePics/06.png | Bin 0 -> 95 bytes images/GoblinWorker/spritePics/07.png | Bin 0 -> 481 bytes images/GoblinWorker/spritePics/08.png | Bin 0 -> 485 bytes images/GoblinWorker/spritePics/10.png | Bin 0 -> 440 bytes images/GoblinWorker/spritePics/11.png | Bin 0 -> 458 bytes images/GoblinWorker/spritePics/12.png | Bin 0 -> 438 bytes images/GoblinWorker/spritePics/13.png | Bin 0 -> 451 bytes images/GoblinWorker/spritePics/14.png | Bin 0 -> 473 bytes images/GoblinWorker/spritePics/15.png | Bin 0 -> 490 bytes images/GoblinWorker/spritePics/16.png | Bin 0 -> 469 bytes images/GoblinWorker/spritePics/17.png | Bin 0 -> 431 bytes images/GoblinWorker/spritePics/18.png | Bin 0 -> 448 bytes images/GoblinWorker/spritePics/19.png | Bin 0 -> 516 bytes images/GoblinWorker/spritePics/20.png | Bin 0 -> 439 bytes images/GoblinWorker/spritePics/21.png | Bin 0 -> 567 bytes images/GoblinWorker/spritePics/22.png | Bin 0 -> 561 bytes images/GoblinWorker/spritePics/23.png | Bin 0 -> 639 bytes images/GoblinWorker/spritePics/24.png | Bin 0 -> 583 bytes images/GoblinWorker/spritePics/25.png | Bin 0 -> 570 bytes images/GoblinWorker/spritePics/26.png | Bin 0 -> 462 bytes images/GoblinWorker/spritePics/27.png | Bin 0 -> 516 bytes images/GoblinWorker/spritePics/28.png | Bin 0 -> 219 bytes images/GoblinWorker/spritePics/29.png | Bin 0 -> 492 bytes images/GoblinWorker/spritePics/30.png | Bin 0 -> 217 bytes images/GoblinWorker/spritePics/31.png | Bin 0 -> 458 bytes images/GoblinWorker/spritePics/32.png | Bin 0 -> 454 bytes images/GoblinWorker/spritePics/33.png | Bin 0 -> 424 bytes images/GoblinWorker/spritePics/34.png | Bin 0 -> 290 bytes images/GoblinWorker/spritePics/35.png | Bin 0 -> 203 bytes images/GoblinWorker/spritePics/36.png | Bin 0 -> 221 bytes images/GoblinWorker/spritePics/stand_gob.png | Bin 0 -> 458 bytes main.py | 393 ++++++++++--------- 38 files changed, 206 insertions(+), 187 deletions(-) delete mode 100644 images/GoblinWorker/spritePics.zip create mode 100644 images/GoblinWorker/spritePics/01.png create mode 100644 images/GoblinWorker/spritePics/02.png create mode 100644 images/GoblinWorker/spritePics/03.png create mode 100644 images/GoblinWorker/spritePics/04.png create mode 100644 images/GoblinWorker/spritePics/05.png create mode 100644 images/GoblinWorker/spritePics/06.png create mode 100644 images/GoblinWorker/spritePics/07.png create mode 100644 images/GoblinWorker/spritePics/08.png create mode 100644 images/GoblinWorker/spritePics/10.png create mode 100644 images/GoblinWorker/spritePics/11.png create mode 100644 images/GoblinWorker/spritePics/12.png create mode 100644 images/GoblinWorker/spritePics/13.png create mode 100644 images/GoblinWorker/spritePics/14.png create mode 100644 images/GoblinWorker/spritePics/15.png create mode 100644 images/GoblinWorker/spritePics/16.png create mode 100644 images/GoblinWorker/spritePics/17.png create mode 100644 images/GoblinWorker/spritePics/18.png create mode 100644 images/GoblinWorker/spritePics/19.png create mode 100644 images/GoblinWorker/spritePics/20.png create mode 100644 images/GoblinWorker/spritePics/21.png create mode 100644 images/GoblinWorker/spritePics/22.png create mode 100644 images/GoblinWorker/spritePics/23.png create mode 100644 images/GoblinWorker/spritePics/24.png create mode 100644 images/GoblinWorker/spritePics/25.png create mode 100644 images/GoblinWorker/spritePics/26.png create mode 100644 images/GoblinWorker/spritePics/27.png create mode 100644 images/GoblinWorker/spritePics/28.png create mode 100644 images/GoblinWorker/spritePics/29.png create mode 100644 images/GoblinWorker/spritePics/30.png create mode 100644 images/GoblinWorker/spritePics/31.png create mode 100644 images/GoblinWorker/spritePics/32.png create mode 100644 images/GoblinWorker/spritePics/33.png create mode 100644 images/GoblinWorker/spritePics/34.png create mode 100644 images/GoblinWorker/spritePics/35.png create mode 100644 images/GoblinWorker/spritePics/36.png create mode 100644 images/GoblinWorker/spritePics/stand_gob.png diff --git a/images/GoblinWorker/spritePics.zip b/images/GoblinWorker/spritePics.zip deleted file mode 100644 index 605df0e99ea6c45bcafcdec94f2ec6d76901d03d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18186 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 diff --git a/images/GoblinWorker/spritePics/01.png b/images/GoblinWorker/spritePics/01.png new file mode 100644 index 0000000000000000000000000000000000000000..96ec9a080c1e0f748e71c44ef18bb5dca2526190 GIT binary patch literal 206 zcmeAS@N?(olHy`uVBq!ia0vp^fZ@2Hrc%%~I!o#M(bu;Qhq2Hutx(C0?9A(=n4nUdz$M zm$S))fs=(Jx~T!eQll>ZJCVeoYIb6Mw<&;$Tp C)<~@Y literal 0 HcmV?d00001 diff --git a/images/GoblinWorker/spritePics/02.png b/images/GoblinWorker/spritePics/02.png new file mode 100644 index 0000000000000000000000000000000000000000..ab20a45a63e3fdb2053e5fadba19e7cd1bff25bf GIT binary patch literal 496 zcmV20004{Nklk!mP)V_d?ffIf|hDwVWFn-6RfQw78W+Kuo1*hFlZr!L?ehoQV3QS zK2Q-wV$PDejCXIsElkMC&d$!9eL#Ao3!jeC<%M*k6Yb8^R*Ec_8O{TOR9pnW3vt2G*Vi<7}j++KE9L%^7&U$DwQ9% z#>f-w6~0Bqo>UiHN9bqgupqi&vG^_sGnw8{m53)@+x!%u0lbc80(o<2`}L%|+x>rv zt@!qAUAQJASGK3Lb)K|*UrL0~}Lf#WOd1^p~dJIFrJ)nAF7=6pMZ~-@vBi^~R3(u=eGs5< zWiBN^48*_&TN_sb_UhCG(vP=#14tqU;;-7d05MNOynp;8h^PV9=mlaY)d`8~%cJ1$ z#yk$T2bYu5Sg(}@h!swAP@NDU#|Y$^Tj&LHPC76+o?rr#GxI^r96=cJ7TbgC7XSeN m|A{QjrT_o{21!IgR09A$f%t8y2jd$60000UviD6B8$-r^i#;WWTtWJaSeO z61ya%6ysuY@Yp;QPQ=QU$@z##IX+hh#1J3iP2JNI8`i7RpRbn?svGapxq8(aVgker z5d$aWJ&^--qj`TJcvMQWu~N*7HIZ9i%jtf9C(BkrZ15Z;IS?zTbUL?`fuQ~-Kmiag z7P7LpnP)4A4NW*d=5T;Yt#;X#46xr`evm@1|%O$WD@{V37#&FAr*{0XD;$KDDbo-2Do43 zE&0z_!Yu3B{KvO%$^m9yJ+b%Anmj(@bHC62b64+E!(PWdo7Nl0b}DjB`ovK%&8Q^D zTjl!am-P(HorLC*8}Zh1KGvQka QZ9owQPgg&ebxsLQ0L-I1!vFvP literal 0 HcmV?d00001 diff --git a/images/GoblinWorker/spritePics/05.png b/images/GoblinWorker/spritePics/05.png new file mode 100644 index 0000000000000000000000000000000000000000..1e00d8d1135bb29e2a15eee7ec47ee6c9973cbed GIT binary patch literal 124 zcmeAS@N?(olHy`uVBq!ia0vp^>_E)M!3HGx`C7_=l%c1KV@L&KOZP!e1_zGA=Wf@h zo7ye;aiJ+d_}BeO)9el{Q<>w=9~QLmTXdA0_!k#3pq~H#Z7*@Y1epZV%*-GkD*jjK S!Ku?g5e83JKbLh*2~7a=93`3n literal 0 HcmV?d00001 diff --git a/images/GoblinWorker/spritePics/06.png b/images/GoblinWorker/spritePics/06.png new file mode 100644 index 0000000000000000000000000000000000000000..bf53fd3f08a45f2b2ee2d074d37c3f38c2448212 GIT binary patch literal 95 zcmeAS@N?(olHy`uVBq!ia0vp^%plCc1|-8Yw(bW~BAzaeAr*{CNe)a2=jt^WiW4RQ mMH&A8w-)WY2V}5;C~|f*@G%&mvelh#(SZDb=a^4V)a+!NEc4)X(8mad7BT2S*Y70u~*F(qaZt zaM4jjDk!2z%yZ=pcQwsq$&-8U&F`K|4mu?N@Jp0zt>?lt`uF`KVR5B0E@_alMUI4r zEVctlH5sz{%#mnQ$LUN#KioY^EhZjffyMZ@_sV z1D+}5W67E?;r7bBEN3T-h=V4$vpIst`5W+gU>-!bSQ6FdTFgzEksBg^=|vDJ^li=p z@nQ*+`o+D#Q@1F*1>tgeOb{t5E3MvmoFkc7!UPde10pER%!xu@7gK{Hp#d7&@NWg` zr?0dJk|;?^e?43YGTp$=43rQ)4i*HctLGo_8Q22qUjP6A|Nm55LwNuI00v1!K~w_( X58&4;B_;s?00000NkvXXu0mjfy7AAn literal 0 HcmV?d00001 diff --git a/images/GoblinWorker/spritePics/08.png b/images/GoblinWorker/spritePics/08.png new file mode 100644 index 0000000000000000000000000000000000000000..16bd71698bd862a26b54ec7ec101b88d16f925f4 GIT binary patch literal 485 zcmVj`*y?-Og zrSd-XTJDpu!eSu7=jf(JvRCSeLI?=L@p)A=T&sQ3l5BR^jHlHfVRIunIT|%h`(cad zBV$wnwPGZV=XxSaMCkEmU)Yh6PoNjZNNB1E8PHR>6Z>S;3YkE{%UrT9K#hnXH7DRc zkO6ZFn+KBhjQBfi3$mJ;Fd{CR;O^E49_MGk=K&L}3nVmPDLuttK$KZ|6GV!c2t5MH zr6-BX^^?F$J1?AqY@skFh!m9_9^9J~vo4UZfCf+lqE2f@mS^V!=yMO`fOkhiL)pwc z2vjcKwbgg*E3sF6w{8UxateEnI#NRL%v%(oE?s>kfSN^N{r~^~|Nql!ud@IE00v1! bK~w_(#g5-Awnk$>00000NkvXXu0mjfZf?bn literal 0 HcmV?d00001 diff --git a/images/GoblinWorker/spritePics/10.png b/images/GoblinWorker/spritePics/10.png new file mode 100644 index 0000000000000000000000000000000000000000..0e70ab98714ff61e1b29fc3f86f34dd3758b6b27 GIT binary patch literal 440 zcmV;p0Z0CcP)jK?@-ykU}g(Py|6l z6A(m^b-#f#?2gM;8gl0T%$aXy@0k73FBi17T#bvAclR$4fL3eDii9VGWk47Jgr=~@ zgE!sJfYKY}Gv$UM@=zhH5ELFRs{aQxxSGyf`aJ9zilUK8{reuVzE}888pp-<@6lB0U#cpyqZLFG`VK@w1Cg)PuI=;o(urD9kNt;X)8uFW2LJ&7|7Evx ivj6}921!IgR09CyCd%+%7fOo&00001VIo% zi;5@``+M}3o0!BdrKKnL&pY>=o0kFU;qPDZ)umjJhP2&M#Stx)#v~1Jk_-~X8A3E^ zQ2TJ;YHeepxFwNKWQqdFqewF7T0AP)P2C^y#^rcuxu@5f0N-zlqF(=T9F49pkJ!zN z({q90gwoxEvZ!&T@-8aOy+`L_#W%J-1uzIg>g@uPb}EI!piB45-(n47#rJlG9a$gN z;QDM+5FxUy3M<#fSn=9@)r%U~A@1B7+B2KSiYoyFptVLe=DsnZhmnF>;lw}QZbKiC zd*jXlL<|@vS6~1z;9S95!$H%DkBrWEG{8b$g6;W7X`b8(1M~p-`pS@4(8qvpKt7eJ z5**NU;;xE3W^>t2XKgVnpwnn2)E7sS&g|vzSy-sm4*ma#A2-DFPag!pT+Uy~*Uh;D zwL*KG!v)OhIq??&0RR6e#qUG_000I_L_t&o05WmFRcVMT761SM07*qoM6N<$f_nwe AEC2ui literal 0 HcmV?d00001 diff --git a/images/GoblinWorker/spritePics/12.png b/images/GoblinWorker/spritePics/12.png new file mode 100644 index 0000000000000000000000000000000000000000..784f410fc2e384485808edaa8f67be82fc261610 GIT binary patch literal 438 zcmV;n0ZIOeP)4Pno~#Ox$HcN+QM@^C9f;aDQ^D-(XHy_3_7|V|70|5k-?_3He9}9PY5|}F$2?_#|!_#+y zLhbrwMv#6SzX>1LM)#$nv$hnHi)VpuO;*Zx^7C+|ur{nlpIKlp{eJ)e0RR61C+t!H g000I_L_t&o0J+@7RsRPdS^xk507*qoM6N<$g12Y8AOHXW literal 0 HcmV?d00001 diff --git a/images/GoblinWorker/spritePics/13.png b/images/GoblinWorker/spritePics/13.png new file mode 100644 index 0000000000000000000000000000000000000000..09e8b0d4d18595327a35fade341c6db4917b0581 GIT binary patch literal 451 zcmV;!0X+VRP)s%A_;j8#lli8EG*PiK7yTKbz)&*lg366OG|?yLP#)$SOh^4 z1Pe((2#TEfCYj}Kb6n-YzcV}Y&v&~!Cjay$f;Lw3VVaWuJpuwysZ2?l@c6J82m=7$ z%ZH_c{Nc2H4Ai=xj(I;i4MDNuaMNu54zodUpwdD)9F#`a zAn1w-0K&!fY|eqU_j-abA&jP@v#Qu>Yqc*e7mMQ>PpUrx%z=&%C$(XV52Fr{Xb^If z12tai86Re*r<)z&&qS_c^=Nb;D*{8dx5yhsPf2dV<3QY#H$pUkVI)VKg!ci6=$p8W zf|d&s9xS~}_v)D$6+nzz>l3&P9&Yx{sYG6=4r{cM^{n(}Qw@m|@lM=pk^>?mL9nwrFDvN@QIRUv!n0~v4_ za04Tu36?Tb1j#PHnJ4nU79xd44kQ}MWk-VQ^`pS}LWa5#Aw#5?jXr-yLLJddw_rad zHQ=)YIkMtfJ2*UOn`<*e-AY(+KVoraP89A9)D?z7*CB}(HC8X)Wixwkpr(hAyF?^3 zGW_#&>-Ht)5eeOh%2!_j@vO5bK+ax2{s900|NnUzJWK!p00v1!K~w_(pPNklRf=noK5;i#; z2Ev{US%2;%{*ZcfC?`N25{mwmga?y)C#hYJ#Bwk16@l2W(^RY9ovOV!NxSX-FBThO za2UdrN^+C4(Z+UD2!J2jKPidbWx4#JTiI-{enHMLPzeGWBNQ=5#)^Oy4ohExNF@h* z{Q_)+++S`AVOG9MxKFQ=%HvH65CI!Lyc7TK{F2a7_<;Vf+<8H zjg}%3K?#b)d;_!G?OkHy!FM}5JM-=B-jMvm6OnAKr@MoQ+cPAgxlkCBK~Uq1oP8^}is5RT@B$ntW;!c9cBnJANWGy4z*<_8JAhH5Y^j>@c_kj$k0ZyP2 z1lz0gvXUAXM49DR75RS)kjv~OvFJ}pys>DVNs^nHT<-0?V~`sT7Txa8pz9Zx)aMq{{&M)wPU=I$`LdVt4lOM1X`=|Pr|RG7i4l0{tH7ygy?}U;C~x@tce8Jv6D9YHx$N7ZCy;B7CjI{3Xf!NVRIfDBVQc&u z$DaahR!DI?-DgF|C*K0uAYo{=<|)$Ye3{ClR-2~C`Q@)5v!b)pS+k%IggT~XWh$Ys zSW)k}8@MtJu@N{5Xg^!6Xgid2wbT`4kPR``J7NrcvBKPlkVIQ6(yq)2G8T{#WDI-> zcZ3jFS2&Fk5rmCunIhrlyMf@*{*3AIK&EiX^pH@E=q8aMzI_#V88n3dQ*(Ju4tL51 zWD1*#Fd`O^fxhAA=}zF{`a|}@M|h6?1=M13fr5_q9n3$ zkCo}}{NsZ%*558q`B7P1E|_6{z{mihqPx}yTN#7O&_JgNc`8CcsF$Q6Cy)?_kKRQg*LpDeEWk09$tbLzk21!IgR09CKO7ZY4(XhGz0000K9>)!()0JYkL`;y^=!_8Hn+b8VL}*9dq;J#(>5AkTCP+^H6GM|1(*Zv?~ZH3mKa7IAkiS?CI@Oh z-4Kokv@1>}wVQ<9sQ4M5zLccK9dBRS$EybnM`-^2kN$cHcp z5aY(`7+V!E6IZ1Ogs7m!vZOl;FVZ=Gq^1J0zEl(h%%n|kVV13eNYGrVC;-R-5D!n^ z2`XyWCo=-{VZxi-3sg3j7fNG_fQb!)OxzLTGaD;0Z_)#&3z%+mh{00960CzJOt h00006Nkl1#Z_Hs4mAJ(002ovPDHLkV1miau$uq? literal 0 HcmV?d00001 diff --git a/images/GoblinWorker/spritePics/21.png b/images/GoblinWorker/spritePics/21.png new file mode 100644 index 0000000000000000000000000000000000000000..3ed9020a5d73be8a77ef1f2a1c6115157efb59f3 GIT binary patch literal 567 zcmV-70?7S|P)j6HX-s!4OnvX3ckVgooBQ6&k$?JSE$Z(M#WV5S|ISK;AQCB*Oi+_f<}G3X zf^Mc4yE=`(w|8y#lluX>5oqZ*upT$em z7;K9Fv?NE-=(8vYfC?U;+vg=38G9FC2rx*QTU`-7?cUz2NjEg)nsssIQ&i?9nxDxx zje1Fykw?g?5@HuG(do@eAXTPAF84=;f6mI|(tPS_MI3Q;XEN?WP8(E~PRKiQPf4t3 zzY#HTe4$Hob|uH2CXf*$V-PWL65bC&U|-Q5BceDH9bt(hgzBOb0R|2A<=Hl53Xf7Z z=q0wI`kFTGf2BKoEfei8X1_UDV!lGYL}ZHDbS}N&3yHK;2{I$%cs(rq5mW1|u?2;-a$H+^m&wf~DOn0m_bU9?Wp!rHw~% zA%~nbx_c+Ec`gAf(oyCq)FiFJ0{Ms?7$~9_h&9h+qm~}>R>X}9 z!+}E3JqC_#zXcTTefGWq009606(TET00006NklIVP- literal 0 HcmV?d00001 diff --git a/images/GoblinWorker/spritePics/22.png b/images/GoblinWorker/spritePics/22.png new file mode 100644 index 0000000000000000000000000000000000000000..78147841db30a0bf937f7b2d96facfb142516f5a GIT binary patch literal 561 zcmV-10?z%3P)z6u{q-k^}i$l5MZj`jdkj&L#`XoNaPkWFDUH~YERYmTEKW{760@%%ZBc!& zA^ug8{ES8)MWMM;SC=jB!O|8Djl2rb$W_fOFWH7WJI`hd36uGychLi;Et;LmrPkof z2qI)u33HdUMaNf10avC?&Uc4}lQZ(AY1|*Jh$}8{jmKSxfflLE7xIqWTQXO))`(~} zI@h5wI}!u-Z7?wz=*bb9vE(MaAB4a`6b?s@5i$9Rwy?xiSXpo+Kr^jFrtnv4oI2)K zR9n@;IwhUqOBri@GC7UGBJ&k;GsSE;kM8i9M4BoDnGtcluBM3ivWdY}0R+@nhe{YM zud#CJZ!fg$uapTOCaES=$Y3xcGfO;F7MqzC1i%(ISlGT0V100P#~=%9_el^$&KTXk z5m-N!fEDSj&L{gMcVm$}3r&FnxPEAm=3t(@#rA~1heYZDvBt?EmwhW@;X-4D=AipD z9NBycD6D_l`vd?0|NqY4ddL6(00v1!K~w_(sR$#bkOxd(00000NkvXXu0mjfc1rfN literal 0 HcmV?d00001 diff --git a/images/GoblinWorker/spritePics/23.png b/images/GoblinWorker/spritePics/23.png new file mode 100644 index 0000000000000000000000000000000000000000..894e6c18b54217600c6bf72df0b035b2c71ed26f GIT binary patch literal 639 zcmV-_0)YLAP)Xn*@Atm@&e$nFMdF<=ZWhW>Ex(aC zqCGuzRu1~AVZe*CA)=LRN+11|^p@)J;>o7V^(_X;yynL>u(Q!t&|1YK#nn*Fm^9$U zbJ>PSXK8)XAWEKak`&c8PQ0bDwdj+mK{1orFqoR!HNmH^WUcl{MkoHZH*cU#iOI(H z_6sgGGP3ESUf+N1SZIJ#3iS}r)s7P)ocPx-=c6Q(at4~4&(c;BnUFBCu>WY06Q5j| zNF8QCO+>_iPYvV_qoyvK3iAkt^Kk6MNytDc6S{Nyfv*FMLu4Qn?(1$c2>ZM^_r|?b zl!4^NoR~Yu1keWs+PHTGq)A4&a<9|>uj(dsmXUoLvS2Y%bU7GtEphH5<*OSShlw;xCXWODrrXKQ<(5OAD)8iiMQ2A|hK0N+_Y5 ztdwktD7ul3K5zGXdO1Jt!j)T}^Stl#Jn!@Up7Y)h_Kv@pcvt(sFpF|}eI}0R;NUmQ zf}V02h{PF+XsN;U&|9i6sU8-8szu^TDE|IlXP~_wUt_?ZlPc~vm1`Xof0`GG=XZZ8 z=i>SGzJc4k(Zh+?Rn&)B^K-cygM))d6MXulbH!`ToF^?O-Zxw@&|sn(h>eY32)4O- z>!Kdha}SneK=o45iBC>^j`d|3sIC1N>sO+9t%3Gg(TVS$?FC5&bPzG%Q-kuajZT~) zGLU9McTO+xWq@@SEj1Rxa(`6_{xwD748Q9COL@@w8ou5oF#D}_&P~^xcTta+xC$63ocy)!)*lhui+>C-gQ$96#-q~9Q8^-e@@Y^X?_G+O$x(X(00960bzT|>00006Nkl%A_P)|7 z5<|Zg-AKp%cCFnx_ndo(IQ5-%_S$Q&@0`7F_lJD*id^wo^t}6|D{}j>qo>_V-^zVO!nnQpXdqT|*v>uy-gapv{QxHTCs>&2VGm!9=}H z%|44;s`;>JgcIYxeKldy%F3U<`u8S`aPMq45+v0o2!L$_&3_~sAq!QSNvvl`EwBT? zv(g+B2bTKE9SGWPE7V0qmAV`9Wt<^mpaytRBv2R45uisVd_sOaKr?VJL<+aZr&5%) zYX}l0n>wXpct+;dq$TxDWBOab!5(L@EWUG1B8`AWz3=|?^(e%=dD2#zQ z{i4y8e?~+;6G+{2fx@SgO@a2oV?B#Hw2>Thns@~O0RR6t1l;=o000I_L_t&o0I#Hq)$ literal 0 HcmV?d00001 diff --git a/images/GoblinWorker/spritePics/26.png b/images/GoblinWorker/spritePics/26.png new file mode 100644 index 0000000000000000000000000000000000000000..f2f192f5a14e76aa62699dad2e125e597c258d54 GIT binary patch literal 462 zcmV;<0WtoGP)?xXt#@kxKQNs91bAw;l(_pMuCp_IA6qZtpNrBGGB*2#loMC`H_&Oo5l-$IjfG!SZ3YCcl9fCyN8u{ z8?}dLlOovMpEt1{i1;>|b6bf%d8^Q8o=!6eMBbj2TvR0jG#BG_nThof{s}A5XE5z3)w({PQnRI5*u_4x-jt{uCmLM4BZCdi>Iw zLK+eIoBc68^t$<)!pv2>EX+12Gw6!qR}@2BnEZ1&4QS#kO>6IsE>{|F-Riu zp(B^U!FmSS+y4@zDvZT%<>vlHa@$*447#{dlezsWbQ9}~M{X!?i~!goR5bnuDm=+Z z=rUi>)O7exC5T{Yxuki!*cn=EXURxTg-i^@JuOKAayy%iV$H;?j5914hvKlXI^YKPdqisRGI$U&Mo&m!4D@x_R7a$M)X;)+nFvdnuu8}q2e!=0 zj8d*!<|kV{E)Ki&ugL>8#-DI0RYJB4RBaoGh-1gEVh~$C8h;dyj9i6~}(g7S=Pik@c-# zm=@m>blGj$bU|?eQ{usc>$ppF literal 0 HcmV?d00001 diff --git a/images/GoblinWorker/spritePics/29.png b/images/GoblinWorker/spritePics/29.png new file mode 100644 index 0000000000000000000000000000000000000000..16f4a974bedc2177d6ef786a552d7407a4c0959c GIT binary patch literal 492 zcmVHdSlG#7e&{Rh*)fReE373gN2QiY)Md9Pg{?KrG+}3A8m)bbFl8ik{WDy>$e3F zMD_ZoAm+v5v^$hit~|7i!mNN1S<~*#=9f+@l{o>Vi-bX83H5)K6n1t#ko9a!Zm%8{ z;_uGil{TY+zKPs^LG)D>2Bf;TDZ9Bv2aGa$@fjdq4*|KnnAILRGGqZNOgquAm0ym= z_yxekP76El!X2ldQP@paGL5@uL9hL?@MOZ65j!G`I0VG$<0XS&D2xCL#GEGsJUyOa zsp3@;U_`O~(#nuQtR0L6!oX7jaxef*^wSiBVKyLhfPfJnt%32-_mv1U!=Se+XnSo# zOx1%0Ysc=1F#Zu1YFvMaF9`JTF!vRMVLB>2$#?Hwg_&1E%&m?GFE!II00030|7e~Y iw*UYD21!IgR09BPDd%%2JsTGQ0000X7N z(%M&nV~M|gj>?U9?>ao!KW@I-dM7XSK99ikowXcy=kHaRd64}^^?av24Ld`xt)CFK zV0o@%$}C+DVWw3AaTXD4xgvSJ-=$C3tRtDb^!0lYzuGj#77-)qWBd(r3Q7unVGRN@ zjFJ9aj3&XFDNop<{Tm_zmnD{XeYHryRAeS*SO!*YR_bq MPgg&ebxsLQ0CNXT&j0`b literal 0 HcmV?d00001 diff --git a/images/GoblinWorker/spritePics/31.png b/images/GoblinWorker/spritePics/31.png new file mode 100644 index 0000000000000000000000000000000000000000..c00b56749b14924c08201de07f2ac101d2aaf3f5 GIT binary patch literal 458 zcmV;*0X6=KP)A?-_Q@n8XiIm&>!_VQ*0MOG3a8 zP!A5UN6zmD2@L|iIjSZ{-ugje8+Kkw<^^m$?mSX5Zm8M(*0$YEkhJd?v|)$WZbN_p zs8l`#sB^i=@UZi#LSH2m3=;rqPp$T;%VKdx5a_}kRC0XUla*v$ZZ03RwQu~hg;fDpKt<%2|%(V_8NPw={V z*nr50+C#rF2`NPUq+VxPN;`7_WNTZk1dt&MLnZug7$#7?dKaK(j~=xrCLy$!eUz`x zonm2I(<5X1oPPiS0RR7ul4KtM000I_L_t&o0GO%BZ^jYjMF0Q*07*qoM6N<$g6U|( AT>t<8 literal 0 HcmV?d00001 diff --git a/images/GoblinWorker/spritePics/32.png b/images/GoblinWorker/spritePics/32.png new file mode 100644 index 0000000000000000000000000000000000000000..f337bfc25c42db25fb3b8e1e9cfabf529ba73be9 GIT binary patch literal 454 zcmV;%0XhDOP)Y5I`r2AP7nj3oRst?MXt=EY`-9Oeph23?K-H z!kQUo-M%Ms56D-RN&@5|p)6ArE@#!AsQJ9?&3FUE-=u6iP%Z>lRwHtQIa>1g=_l39XD)(H*p@J4lEKB1s|;yaHDW zf(W8MgYz*SkGfHK&Y5}Vo%ej4tKvb6291PZ@C($@ z1vGqK4+|{w2CWKVJHgsT@dgDic1t=Dq z0@RtzVtCov)L~CUC|Je-)SgnQrEM;^A_QpTE*f%k+ZHh02l)U$#{*~@@_4^2Z%=;; zqK7X5oB&vi`ZZ)H`7QaAT{%vz#|E)za5DUO*`d}Dd-7g-Q%j!2k~V`2Ctw+PF9S); zOFa^TU=VbDxnynl8UzM$SZK&=MH0{NRRL;d`Li_vf(&%HdpJ<9`89+A%Rn6mfuAqi zLg3NqZvrpi4IwnZf97KUUplo91r4lch6l~)0{{U3|9mt0mjD0&21!IgR09BCyS8m@ Sn{luJ0000Gc-AFH+1FuD!mbe_#5n0Qoh# z7qhRvG+j7%=AlcB4IVoL4FYPa*=qD5=;?40kfFLd(uw%@;~|Kfz}A5RqTzv=pf^A%_7@!E*m{3|i05_^l- z!#r z|4z^4UhmYa<+WZ5ZHBB==l-_3^Zw zjFUfN4Nn^!XLLSw;IQX`^H;pjRbRMs9c1obZU%<`|24DctpvJ`4dgmz2B~{`!i^a{ Qu|N?9Pgg&ebxsLQ0DDSQlK=n! literal 0 HcmV?d00001 diff --git a/images/GoblinWorker/spritePics/stand_gob.png b/images/GoblinWorker/spritePics/stand_gob.png new file mode 100644 index 0000000000000000000000000000000000000000..09deb394d98d2133118ad0167cffc90b7b59f59d GIT binary patch literal 458 zcmV;*0X6=KP)fqp@bn?FtoK74ZT)K#pI67K%5Tu0;;!p%d z5Ts}eLQ&-8OZ!5S9yj&iyS)7J@?COcGNLC{w7pSCvPk>(kO)DgG9_8i6Usah4G6-f za83`sZtjWP1?t)9k^pr`D9aRuo3rMgsChr*^?r2f0$w WIDTH: + self.x = WIDTH + + # ------------------------- + # ГРАВИТАЦИЯ + # ------------------------- + def apply_gravity(self): + self.y_velocity -= GRAVITY + self.y -= self.y_velocity + + if self.y >= HEIGHT: + self.y = HEIGHT + self.y_velocity = 0 + self.jumping = False + + # ------------------------- + # АНИМАЦИЯ + # ------------------------- + def update_animation(self): + if self.jumping: + self.surface = self.jump_img + elif self.moving: + self.anim_counter += 1 + frame = (self.anim_counter // self.ANIM_SPEED) % 2 + self.surface = self.walk1 if frame == 0 else self.walk2 + else: + self.surface = self.stand + + if not self.facing_right: + self.surface = pygame.transform.flip(self.surface, True, False) + + self.rect = self.surface.get_rect(center=(self.x, self.y)) + + # ------------------------- + # ОТРИСОВКА + # ------------------------- + def draw(self, screen): + screen.blit(self.surface, self.rect) -k_jump_start = get_image(knight, 3, 5, 32, 32, 3, BLACK) -k_jump_apex = get_image(knight, 4, 5, 32, 32, 3, BLACK) -k_jump_fall = get_image(knight, 5, 5, 32, 32, 3, BLACK) +# ===================================================== +# ЗАГРУЗКА СПРАЙТОВ +# ===================================================== + +goblin_sheet = pygame.image.load("images/GoblinWorker/GoblinWorker.png").convert_alpha() +knight_sheet = pygame.image.load("images/sprites/knight.png").convert_alpha() + +goblin = Player( + 200, 800, + goblin_sheet, + (48, 48), + 3, + { + "left": pygame.K_a, + "right": pygame.K_d, + "jump": pygame.K_SPACE + } +) + +knight = Player( + 500, 800, + knight_sheet, + (32, 32), + 3, + { + "left": pygame.K_KP4, + "right": pygame.K_KP6, + "jump": pygame.K_KP8 + } +) + +# ===================================================== +# ОБЪЕКТЫ УРОВНЯ +# ===================================================== -# SPRITES / WORLD door_image = pygame.image.load("images/door.png") -door_rect = door_image.get_rect(center = (800, 700)) -wall_image = pygame.image.load("images/wall.png") -wall_right = pygame.Rect(1000, 0, 1, 800) -wall_left = pygame.Rect(0, 0, 1, 800) -wall_bottom = pygame.Rect(0, 800, 1000, 1) -wall_up = pygame.Rect(0, 0, 1000, 1) +door_rect = door_image.get_rect(center=(800, 700)) -#BUTTONS button_play = pygame.image.load("images/play_button.png") -button_play_rect = button_play.get_rect(center=(500, 400)) -#PLATFORM -platform_image = pygame.image.load("images/sprites/platforms.png") -platform = get_image(platform_image, 0, 0, 16, 9, 3, BLACK) -platform_rect = platform.get_rect(topleft=(400, 700)) +button_rect = button_play.get_rect(center=(500, 400)) -# ANIMATION -g_anim_counter = 0 -k_anim_counter = 0 -ANIM_SPEED = 8 +# ===================================================== +# ФУНКЦИЯ РЕСТАРТА +# ===================================================== +def restart_level(): + goblin.reset() + knight.reset() + +# ===================================================== # GAME LOOP +# ===================================================== + +level = 0 + while True: + for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() sys.exit() - keys_pressed = pygame.key.get_pressed() + keys = pygame.key.get_pressed() mouse_pos = pygame.mouse.get_pos() - SCREEN.fill((0,0,0)) - - - g_moving = False - if keys_pressed[pygame.K_d]: - G_X += 5 - g_facing_right = True - g_moving = True - if keys_pressed[pygame.K_a]: - G_X -= 5 - g_facing_right = False - g_moving = True - if keys_pressed[pygame.K_SPACE] and not g_jumping: - g_jumping = True - g_y_velocity = G_JUMP_HEIGHT - - k_moving = False - if keys_pressed[pygame.K_KP6]: - K_X += 5 - k_facing_right = True - k_moving = True - if keys_pressed[pygame.K_KP4]: - K_X -= 5 - k_facing_right = False - k_moving = True - if keys_pressed[pygame.K_KP8] and not k_jumping: - k_jumping = True - k_y_velocity = K_JUMP_HEIGHT - - # Goblin - g_y_velocity -= G_GRAVITY - G_Y -= g_y_velocity - - # Knight - k_y_velocity -= K_GRAVITY - K_Y -= k_y_velocity - - if G_X < 0: G_X = 0 - if G_X > 1000: G_X = 1000 - - if K_X < 0: K_X = 0 - if K_X > 1000: K_X = 1000 - - # Пол - if G_Y >= 800: - G_Y = 800 - g_y_velocity = 0 - g_jumping = False - - if K_Y >= 800: - K_Y = 800 - k_y_velocity = 0 - k_jumping = False - - g_anim_counter = g_anim_counter + 1 if g_moving else 0 - k_anim_counter = k_anim_counter + 1 if k_moving else 0 - - if g_jumping: - g_surface = frame_1 - elif g_moving: - g_frame_index = (g_anim_counter // ANIM_SPEED) % 2 - g_surface = walk_a if g_frame_index == 0 else walk_b - else: - g_surface = STANDING_SURFACE - - if not g_facing_right: - g_surface = pygame.transform.flip(g_surface, True, False) - g_surface.set_colorkey(BLACK) - - g_rect = g_surface.get_rect(center=(G_X, G_Y)) - - if k_jumping: - up_thresh = K_JUMP_HEIGHT // 3 - down_thresh = -up_thresh - if k_y_velocity > up_thresh: - k_surface = k_jump_start - elif k_y_velocity > down_thresh: - k_surface = k_jump_apex - else: - k_surface = k_jump_fall - elif k_moving: - k_frame_index = (k_anim_counter // ANIM_SPEED) % 2 - k_surface = k_walk_a if k_frame_index == 0 else k_walk_b - else: - k_surface = K_STAND - - if not k_facing_right: - k_surface = pygame.transform.flip(k_surface, True, False) - k_surface.set_colorkey(BLACK) - - k_rect = k_surface.get_rect(center=(K_X, K_Y)) - + SCREEN.fill((0, 0, 0)) + # ================= MENU ================= if level == 0: SCREEN.blit(BACK_MAIN, (0, 0)) - SCREEN.blit(button_play, button_play_rect) + SCREEN.blit(button_play, button_rect) - if button_play_rect.collidepoint(mouse_pos) and pygame.mouse.get_pressed()[0]: + if button_rect.collidepoint(mouse_pos) and pygame.mouse.get_pressed()[0]: + restart_level() level = 1 - if level == 1: + + # ================= GAME ================= + elif level == 1: + SCREEN.blit(BACKGROUND, (0, 0)) SCREEN.blit(door_image, door_rect) - SCREEN.blit(platform, platform_rect) - SCREEN.blit(g_surface, g_rect) - SCREEN.blit(k_surface, k_rect) - # Goblin - if g_rect.colliderect(platform_rect) and g_y_velocity <= 0: - G_Y = platform_rect.top - g_rect.height / 2 - g_y_velocity = 0 - g_jumping = False - # Knight - if k_rect.colliderect(platform_rect) and k_y_velocity <= 0: - K_Y = platform_rect.top - k_rect.height / 2 - k_y_velocity = 0 - k_jumping = False + # --- Goblin --- + goblin.handle_input(keys) + goblin.apply_gravity() + goblin.update_animation() + goblin.draw(SCREEN) - if g_rect.colliderect(door_rect) and keys_pressed[pygame.K_e]: + # --- Knight --- + knight.handle_input(keys) + knight.apply_gravity() + knight.update_animation() + knight.draw(SCREEN) + + # Победа + if goblin.rect.colliderect(door_rect) and keys[pygame.K_e]: print("Goblin wins!") + restart_level() level = 0 - if k_rect.colliderect(door_rect) and keys_pressed[pygame.K_KP5]: + if knight.rect.colliderect(door_rect) and keys[pygame.K_KP5]: print("Knight wins!") + restart_level() level = 0 - pygame.display.update() pygame.display.update() CLOCK.tick(60) \ No newline at end of file