From 6be474da08b8aa3519b583d9888ce36eebc518cd Mon Sep 17 00:00:00 2001 From: John McCardle Date: Sat, 8 Mar 2025 10:42:17 -0500 Subject: [PATCH] 7DRL 2025 progress --- assets/kenney_TD_MR_IP.png | Bin 678330 -> 690176 bytes assets/sfx/splat1.ogg | Bin 0 -> 15168 bytes assets/sfx/splat2.ogg | Bin 0 -> 16676 bytes assets/sfx/splat3.ogg | Bin 0 -> 15167 bytes assets/sfx/splat4.ogg | Bin 0 -> 14412 bytes assets/sfx/splat5.ogg | Bin 0 -> 21964 bytes assets/sfx/splat6.ogg | Bin 0 -> 18146 bytes assets/sfx/splat7.ogg | Bin 0 -> 17488 bytes assets/sfx/splat8.ogg | Bin 0 -> 19586 bytes assets/sfx/splat9.ogg | Bin 0 -> 20783 bytes src/PyTexture.cpp | 1 - src/UICaption.cpp | 2 +- src/scripts/cos_entities.py | 200 ++++++++++++- src/scripts/cos_level.py | 162 +++++++--- src/scripts/cos_tiles.py | 2 +- src/scripts/game.py | 569 +++++++++++++++++++++++++++++++++--- 16 files changed, 856 insertions(+), 80 deletions(-) create mode 100644 assets/sfx/splat1.ogg create mode 100644 assets/sfx/splat2.ogg create mode 100644 assets/sfx/splat3.ogg create mode 100644 assets/sfx/splat4.ogg create mode 100644 assets/sfx/splat5.ogg create mode 100644 assets/sfx/splat6.ogg create mode 100644 assets/sfx/splat7.ogg create mode 100644 assets/sfx/splat8.ogg create mode 100644 assets/sfx/splat9.ogg diff --git a/assets/kenney_TD_MR_IP.png b/assets/kenney_TD_MR_IP.png index 600c8d94eb0d24c6b2814cfae5442905fdca4039..5e1efc175e48a63f605615c8e1dd3e9bdc85090a 100644 GIT binary patch delta 45407 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 diff --git a/assets/sfx/splat1.ogg b/assets/sfx/splat1.ogg new file mode 100644 index 0000000000000000000000000000000000000000..0d09909b4f8399a234490726af9289c934b70e54 GIT binary patch literal 15168 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 literal 0 HcmV?d00001 diff --git a/assets/sfx/splat2.ogg b/assets/sfx/splat2.ogg new file mode 100644 index 0000000000000000000000000000000000000000..5301e86ec6b6dac8281e35bfa5328b096f471a9d GIT binary patch literal 16676 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 NxB&$WH$%z5{{VizCIJ8d literal 0 HcmV?d00001 diff --git a/assets/sfx/splat4.ogg b/assets/sfx/splat4.ogg new file mode 100644 index 0000000000000000000000000000000000000000..d7e7b1bd88512484fc010b93993d7b9b98682505 GIT binary patch literal 14412 zcmeIYcT`hP*C>1vAcWqMP=(L~gdVDjp-Pt$Ab|AVL}`jrLN$aU(nJ)6P^1e82-t#D z>4ay#V2LC=4ugPsuZskHgw8}66;|0P|f z`#Tg4#2^No_E$I&=7$ar@U;I!0BwR+QBqM-(on*oF*ZKlkzN6({LqG{q5{G~PlfoL zijbiL`yB^=`X?+b3@r(^NBturPKRqND*A@`_=JZ>p7K@*4f9hBS5(!)X=F;Xk<9rA~M`R8f_AC z+QTa%932{lcJPTn+nx^ghzM5*Ijt%PcF?sUnAj4Idiwe)e01xuA|BO)o83{uh ziT*Gw;~x$W0H93qHrU=U-0^T+fA|qFACEA2l4m}$WzO+0AsmPu0PxB}y=R1;fZVW= zpA1uT2tPU#ZZQM0;(#On>y+?EU%-io7W)@vmNI@8kCX@dBO}F;>qJ!M={;MJrVu2(XrxcTKvrgYb8}f7GJd_4;U+)+?|_ z+WfVk4kj0{_QU)7rxB(D*nd?YJSaDhS-!sFM09Kx%o8D6DVi%Bafv;*M0r4_TsSk! z$h11i%7$OMA|mn6%+Ual%=t%)|5f}^<-b~7owEzWFRxe?x=WgJw|I_)G^k!NEnQ}NfLK%t_&vvpzoe~cuxFlw$}KWwm7Il1D+ov{s_CEx4>qiI{%`ZY zE$4Wc1eig~F$|OV56ht`3+aQ_)Qq+G`ge{;CqRZq81nw7004lN&1&{%9kI5NpR!S# zvXQqV9Q|Kg4A?q_vzWwzjLioCegJq|Uis`iJGW=HR+_Fq+@wdS_oVjw>t!c1E@q1x znS2zr9pUAOtc9cp64i@$MEmt|5*tV!dcUU`JZ7xLK6hY1nwVNAQhUbAsz>M zlK=Dc-_WvFgPiyeT6mlVo?!8RPU-)S@P9e*zvTd^;t+Q5htew*m4lKrA;85q_#Cv! z29D(AxN+p1fH}_+5p{&4h;i~?)&V-$P24%*BOH}X**K0HjAKaw{|;UObTrs-14K4H zXjtv~mtKP}vSH3s$uyB12t6{H9Pk+DQS;xw90>qO5JrFm@C@Sr{Z3`Z+yJ1N z7sfe05P;<4c!LoDa(tqN|NCM7zeE2EK?n&002ir5)M=q1XqJ~FJ_pOo20>|JIIzlfV>P;x zY3wUFZw!SR00rF($aaPUwyXP_V%e?y2TTF91VDSGS+E>U#ZbWbsb=sDcIc~tHNwKy z&gIG*V!>(}6;o7M)2RRw8vEm-z~Iim=-*(R1p-`!!PVG>w`e8pV1$~Q1{M%=5@!Ko z&M;8@iz=&YKu?1IgE$rG!b?7Y)qvgwdVpl-GL!E^3IO|cHel%pf1mkFYHB`oHpmSD zU;s6j@8bwtI(TZv0>Bat0-$Md?I%^ua6yaq4FDm~EC!H4UC8h-Rjy$5;?`p>^)S~n z7WKBVk(H@n){~XYx6w7OD7R5Dm9HqUVGzyFF|9_I+t|o30Hi~j;ExDTNv)#?Ho<7m zE6;OSYgIzeRC(okIJam89~j_3a zKRXol43B?mXPEzU*YZF2FaLkmW}SlSTkQe9(G)toV{)cyokTG*3&tzZ%niVqK&k7J zmETF^<(Qfx^)j?DlKBNrlzKg~GQ6VvnNzSbYD|lv=BGdL76c7jlr{Z*yMYJN% zDP6ve?^>`ZD77FE=A~-d3c|pt1Yu1(Kv+{RUr?qY=9=?CYf!zK%yPI{)0C4}U8_`C zM$Q4Ou60^0&qk#WVGGuZl9l>)_`K?rSDkXXAAc9Nl?Rc7KwS{`&aCcp0u_hJCnHmS zDldGL0l**C1n`o4y3+i1D33BGUSZN7!E}IoNKp0q4m9jQuWZWs!a+4dCm-y@%He++ zbiwcvlo`L*zZy!Db8H5|9tRB|ImwD=e|umKB4N|&e>YU*<=On{3;z=$gIm#qNR=DZ z-8>txUkXU$Z|n>*gc+pqr@<85vLf`D{x;<0fOr-EG=PM_@&9Q634z1>?EzK}Lh$?p z+=I%WvihI~KK?ELHdKIwK;U1{0U_}5pYi?>%CnLE`v@+-bO)=SxU77SrE0?w=y8OK zIsT8$f;%)$#-^5Or`n9LK@*dDeItRDlJZ#-M$uNHnGafb(8RPj5iSF(PRWq1D9kO; z8!EJ6^^{YN$WT76wM@|K=L47QL;#@UQsIFk@Cga5fF|BJ8wxP9upa6*#N!o2%V;I1 z%{8Tq)xnbh@-Sx_xfiWmDu9u#q$Bk*q{aXP+KoQXssJcLP8 z^Hr+!;zqLI^%7gc2Rujz0EB@haQT`8#Kfpq-@M!S4lr@?i^?c#>2m#PJ`8*Z0Am{x zne4x!seMETuV-LnY-(<41uk!pKb{Z|K;ZDd8_t7gIQ;Kn3`y=!f8gLS=D;n^u9j?w zneV&o`|W$|pFe5kU}9kDU~5CLw71z8*_Q!-hxQc=%-4k;AmM>J?YqL_*0MQ$f|ovT z$Lzd{PvxHk@cSXZi&d5Huk8Q2u>F2)Pb=v6+k!{oxdINCe$7X2)?3D9-8&VObm9am z0R5a}3I_c2dA>NrA%q|)yook*GX~HvjlQ>KR;ksX>b<}>Vnd}XIvTwAvDQ?2VcC9f zcRPLN(UV;M$gdmIqor7L6^XkKbWR=rFuoV7kad&ew?pt{(5je7_V!(B|TJfX}Q30 z>&BwDl+I1w<~U*4DY>tn7a*$%cV%>FU(Kt>B)pILt@3owF&u3?%TIOU=B6;_NqonK zcZjB3_X8bK%y@Pu)r;qr0%B4b-srkF7wr6UrOD;+1@rw>qj*At%Mp zyUBkOZtfhlgvj}l?zXGbe*aP%k+#C;(%!1QwOsc77(S0(+}V4f_|X2eOYCr<>w4q| zxnbsn;WjC_!*$bqyWep7^BvUAXf-m*Uhd9X z#!iCjkF{*(T+@;STczv9guae%`=2Kxg?%h`-Y=XH?#e&*R0hp(Ome+St#?~)6TSVeHy-q}-N&fCJ*&ETcV8`L0#H5eDe&3*`+khluO~Op zgl#9F03aRD=M9M&d=?R#(Q;Hwuo~-QYxf&1_|0B#<0{Ho5sg=Al4%2DqeYO*uQiNM z0x|rGJ6lO$KoI-Ae8OpAJh1j4YRqm7KX>Ef^w^M@!sNGN{ZLoRoxLB&U%Y=JaV+M| z>Xk=vU!S}lcK-TNZ13Za^U#cukkkE+ea)lJ)0-_9y;ghOM)%0=cgDE9r+90AdG`y2 zz5E>B<$CnKtIAy4qDHEp$oDybM(dej5Y?PK`EV>ORPv~hIv&N(d%u?s@S__Ph0ab!H;gb_EAc4_@V?PW^I@k7k55@f~&b=C~p>&fPAo4xHE7Qbjwm@J> zJa>bgm+1c8_L_itj#Zp4$(X2eNld0{us}gYvz;Fz1OVGUG0%4ux!&n=#qi(0yQL2s z0DfF$=)R=9|++9 zOmpq?T14meda;X!V5RTbn1-y;9Sw#$86Qk$o5q)es^o_;S-m4fiqP@ zXLFYL&Iy}`jUcp6R9=)fdd)|zaxW9;yLC@yhxO{#gIsSvZA(^XI;C^dv9{(@@vhH` z>x1RdOTP!J55vSe1~)dnvaK{qc$tk^)HPHJdS?}30YJ>crY_4vh~?nc*t+o#$K^Jts1AN?Y2%{eDuR@(l+`C`^EF;D=)o> zA77jqb-%iE;~CGhH=EAUdsDq0PMc-2<{Z&FSFJs;8vAYH)a(1CX8(^s59Gnc{(?Ma zk5{0ffg>7y|Do)UYRv!T$0A^cl)=GCI#3P$-R32?bm}A zHdlbidr#~5<9B%tNSs0>HpRMCOoi%FO6+lx7ZBA}FznMRQOt+iVk4)S&Ty7FBaZEU zkud;Z8Ha`*HOkBFdRhlDzVOBF^s$c)xDB`D#sbMnwiduJ#{G$<4pV>8w5gQ4%xiXs zf#6TU=y6$+KZ5jVAJY7te*|%hgF_Mxd(0sP)yc!b+pw|_*=w@nJlKIcRSU0NJeH9cW zS8#73H0)N++swFrkHkc=_rN+Vx0`;lu3GH;gBB;5EBp_{5~piNzO0Ek*G?r8IS^_; z2fZtP1{AIwGan{xzAA?fOAei2a&j_gLI%xm7cQ%hwS~58MoC z(Amy-=2O56IO)ES6*ya}`k_!KV9eI~ia|P&)<{uPJER9Sqodt>wB38;lJ3hRr|E(F zhs^vqa#1ynk{vFVud^iYFh;$C<}CC+bKIZcP`o#sNnnA{j;)+;;7!U1q?j6}C!WhB zyw`RJU?Y#>D8wnJyQ=OVx;Gse{64>Y#NPkw7Xy&Nf4dkesTggw{yc89-D}gpWfR`3 zuvo9LLoSxB$pOAEKL4a=#cVKD%2nn+fhkAQ(hp}H%Qx)y^;vv5K!(sw(EdxQykraI>2f=L9VXmemqO2#QvZts0R3`!SnViW4oAQ3GH|3gz>yefs>+7e3`_|>N z-2K!H*tl}fRac#vl&ZaQ;z7Ik-HK@4N;Y-pDm%eCF;rkcA(=|GuBT8b$Xb=s;act^ zj^Drdo8lxlKcrYP$jL%c`q!lE?=v-QT7IGqGJNXU)aKdVMmA+#_yar)&Gr1!xi-7B;lV z^^(*YlFv)}z43`Dh5eQ!Z53sOg963L&!fFrdRp&oh7hOg7PLQv|Jx6@tn|iA<)6f3XxYU8f=JrpCcwgBGZEvNk~ZBUaCc zxZX33Z44|6C@oM=rF7b{7`;bRQK(rZ;|9;NG=T!04*H9}t%RD|FaCGSjw{1;JD+GbV(*m^ii)jWu;YNXq$?hv`3c~fRZbx=uRGNVIFD-L2WrjjAxV#0`x9)iz+cF zCq}U8=P^f^0kz0G78eOU;S{Yfv@hy*W&VNwJlo>-3vE(cueZRk3LY#)&%}yT0re8Mer&y^ydv`K-D8=K<6bBf-r#`AK$xl`8LjeTW|jMAGC41k_qyC0Ki?(OuYTFd z0w=rY_uL?i;|oXCh*MS{{~2a9Kft*z}ZaL0e;2k(x8H3pb^N?J4pUo9-z}NfAZa_i%PEas1q% zW~)kyR@@Pj*LLn#aqJ=|TH^rXlt3+sO^hEEzu!-YEfbRzWvVwXZ`~@id{mGbf8~y` z4Uj{_w7yvx1CJj*FU~fFNGRzE;ST8`8b8h$h#~zpgNy1IyH@tk(y$OduW}wrDx1#w z5bP6Cc|YEXNya6{K%u%{FUx!y#8%cg#8jPRa$0Yy$}9%j zW<3QDP3H;NSP?AX2`M4H%t=-mdBh2O-XG5nL%2Et3VC{W8 zu#9Pdo}-tNUMWq$ZXAlr@Q1+OjyKdOXmAFXqME3N8SPAPtaws}X_8#1*h$|b-~C|j z5F&kr6&f$frVAIT=N)WjO#_m#Pfhevq5L$cCt!um(8ZT4J3TG-6+c_c;&25DuqXil z>hyOFCdAW|!@-M=IUd~vj|8!NX+40`vTjFtyrQldfxpD;_U4S_16tJ0Uq8R-#d>ox zM8|^r`?sRE$M9F8nh*hBb7mY$SPmCb{LkX+sTr(~Pj?3bv>N3;jKkoQEL9=_A4fAVgE*!{Tp*}-zUB~ov-dMeQhCt#pEMQtr1P6eKCp>nPFl3jHXW>$eU zyau9u6}aT6``>-5-DW@jB#yZrHa8l|nb=<5v%U2;G(E2%-DrXLms{qt-^?Wsv+Qhk z(quyy##8KStHaVo?5twu>E2$qLevkpJ&?kC)Obl;!2 zNGBvVWGMK$Nj{kU@^T&9mu%GD4x}ceoX(0z$?oE}FOE8PEdmHTu3D$yDGyC{E917n zuv2B(M4l5h<-#)b<=m;f6iD zz?SG)lN0*SB|IJ}cH~|Vc$4UHOiSl2_c(KR3Q)L$8|||kj)48PVUwAwqz`QBn{Z7x zF5#6OOpK;G&_4pe;4;z}eN_RYr#*aV&`U?}VnrWS6 z+Ubn%3up4C)a;Or&(QCSWMcml7$({k(br|ZU(IsDSmFSz{aX=6hP0L zO5&MTj+H#~C6*tq5VK1B&0!qLhpHCA*wq-e+SC)$u|YNi#+PMe9gel|)auK=p3^4V zQUa7syTQ*EfK}_rxwTx8ZBE&W>~K_2rdMMQ_j;nIrYEs3>I~E+MWgE~7DfzWh~z_f z43{>8QT?#vQBSr`&sOn|pF^FrHMU!svHTgsoeUi-_06M)N}NmC-Z0C`n3?ilj$(4J zAf{A4G5)0sF)(R>0m)oMhqc>00<(8r9Zkc_FWR!C!p67l+IcSl57Q)?PCOC8yyr{N zKmV*l!ry!@zN8|gTp)(ie<#R0CqcqfJM1kwj#8r|ROlj0rGgGJJ14m6s%KET9gkqJ zkioTD*+2%bI%K`kL_lqgfBgjUqGe`cA}SqLOr}<9ev)6#VBjLKd0vZEZh}*hO5{v9 z)$*Ezv7+TQtV$_^KoXw5z)E*G?Di~3O0yaPl|&TS%4z`|Qa+dRR$zc{I=FF*H_i zQ0#mOo9^WV^s~1S+D&v#leQDD=eiQox-1C?chkI@oa(IwZh0!Rc6)Nkk?k^S?7WbM zwN(^UaiXs*428}7Pv&SVCp5F_7Anu!mB}R0gvr72P ziV38+^Q8uO%2&v{3{`;Ow6oRJn%7`2Z z-gy4$%AK86ivfex7NBLPqig4!gwAb|o)K~n>9O>=yb63t4?u(v1#u1uPqX74h5anu@8^=#nl*%$&OF{bYyNnR zEgy0omsIR}$Ps8p?+~hm$hS0R(&!G869UaZ^(M_|H}xx>R4e|{R5;l>Za5fGMxExX zO_i@Jq@aniL}KsLBIZ=Ppg=x~zroapMo^c?lppn&0TQ{jPdzaay=jv+DM6(fe0|!L zdr77>QTl;3lBEyjY#kvEwMs1sq>4e!t>DQrMo1r7`8K4I#bYwPCsFKh_8nCNKA8-z zw#bLS$zpRbfQi>gFB|v%H`zr)hIu!$`CD+j!1M6X^CxaM8DFQ0UI6GIc=`NYS0y~V zP$**?ctfxoMsFojau`aQ<(}^0ONJ-`vEsTC+<9B_$1$(XfZ=Vro-y=y@Wg-7VVFgz zEBS$a~csch!bQ_ z8fuDK!W2x_#fy6PCT7#q4P0h`H)2^Bprgi3=4u2u0&vIa>M2*DN&bxtJJMfhpM%#P zV<}FAGgmpiy$0QTbD$}FTOP^Y{P4-DW^X5U0`3=K4bN6q;B;!6dn(w8G z>Whk$N)BdGJFX13oOiAvWC__+m`X}XNv)8HR(*UYK}|BozR&0#l`^KfY-~5o)>Ip! zX1#rBE?CvM*Cn-?D$kzsVZ)SJ*Mg9Ch@gBmOp?(Ag20HZ6Kp;g!f=C*SlMeXGbB5LIh)^+m+7)Uu5yl89Xta#`NRmLacmS-#34tuTodbRRo=7Mje} zzyoqeNUM-o*Av*ldBweN!I2xg{e?*@GLL>Bsgv7#*xTn&?G{lA<)}uTYP9#CAR@W! zl%ag`Bq=A}Nr1?eZrD2U^Qd!-I((W4(B9$2F;qM7qF`UC0jrq1GmhG$65rx&Xqdq~ z?JlI6uS#DBXNG&SMf1D(-CZ8}DU{wNntT38?4-4pk*Rsz&9lWXq!=e8j9U4_`F2)$SiFZPL*{!li537u~DyT z{M12)M<(2{vtCvTg&{DD%4{|4PMAA}HSp>kkIl`5LKkM6SyCW5CUblpHR9B1X`nKA zKwwTu#PPNm&8XnA(j)07%ss+h^z?2wE{$5hr+acLiJ-Pe#yGp)`KEhBbbUe@D&$NkCu~A zV2=>w4&mG;RHyQuaKH)mkZs{*70DCet>ngMb++y1YMI7$v-9#i>*Jb1!$ua}vasnp zMRT5SGi=OSg+f9&8`Zrdd3w;EoIMo#I(UhgtaC8X%RE2~cC_yLa=o<~uoARw>Pc1+ zRmesP8lpXz051ram9>2(N1_`_@OHA9KOO4*DFb0WPL<~SWEfylM$|0^)fr z!OJA*+pCUQ-vrR=Gz|O|$FC$^6m{H9;s-bQ$^NB!Ne9#eSgE)LI1p@m6jS~Yb~riW2*i(9;#!xCyMvuv6_i#32w)GB>~Jbk?&Zv`qNpylc>xBj zBu35=0ymehqSV*ap2X8X6~n?`z?psK`>WHT%_^0+QhEh^K@tQ;g59lsLZmb0VZ>Xj zSnqx?o#)nUVi*qrjAfn^8dP!EgIg~_C)mpi^yUccFvbj|eX5Em z43M+8Z|$<7$fD{9TkI;=Jv*9&G{bPLZfhJf2e<6(sn6(@#n+PTvJ-PgKR z+4)>O-LHX@&f*1>#C*!@RAE`M%A6dCF%@Wl0zGXU8NxkK!1wo6?R(nDAZ#0bP()biS6lB)lgRKSJLFFZ@LrDCvp#5K48^-FSKNvJWSz*BMWUn*?t7 zy>&9#5Gg?^$$#SSAo9FEhS#`izHG)a{An!&XMp@nRuUuVTYx79d;)dbo&r*{Q|4xD zPxOLNsYo-g0oh7qZBk?q-*oR|n?7Ged0JW;W*TA6sw^a>spNf_6`SslB_2VO4H-xu z0o<8X_ab(v8M|2)FMj}b2oq>m#$Cg#z+f^}C`%6!C9!Za(PL`G)FbTn!~BOTEwLv$`o$@$YoJe)Di zt0hmj9b1IR=u%gI*1a^Wa3^O? z`MT{?r@~4}M}NEUx+=AvY>A|ig2EdA3akvlg+QY^(aTe;C8rQ_Mj~yVOx(ee=#vQ! zO?5Re4JCDqJx;SEV1c`yIg_gelG~RKVO?@JA5zXqB5-p0bdum9;wAbS34x~@^_=+3 z(#Ih=B&;jmEGH_PJOxx;Zi5Y zsZo)fJt5J{fDk~-d-WK;vBcYrD+1yTY3&z6z$+%3KMh$!i37(&4wpdin{G@W?YctK zpy2&RgxS;lAvRz&<}$Fw#Hn*Xc9V_{>b-D`&iUoRkxrc7vk>++-KyS3;}O*&9HXjk z)st-F2Q3M)g5MVBQ_p3d7RMBUYvM-hc_t=eaaxD{+-xQ4s&p9=TVG`4&8}i=Cdk@l zBo}zo!e~TK5F64sNK!MZu1a_sNG{?_%#blk3T&0_&B-&x-%B7Nt_!4>PD1s)kJCDd zc#KE#I>1;uO>-wW3G#aYJl4-lC z1hrNUD3J~O9=8%z@qN~k;K=~MKVaqm8s(*?4;TT^GABJwcgDU!^#ExuE(sn?0whVO zy%X}a=kXWGlh6kLW_NLEc+Z~J@N*_QG@yjSE7M-_k}Oz&l5}GJ5%dE_IA691KvE>Z z`BF%AfbsXM(vsdGg|{isD^^M0f+sutKzE8#6#QHA5~p8U91fmU=<7wkkp#_ zX5tnr@yzyE{4bI4q4xeH5mIk zglkGG=(R$MM+K)|S%PLe{jerOg&$|DMkE zc&~5g9Pc$8UcGw%cKdP5ApgpR8ewKiM%m8Jt@N$tl`~PxdyZu_*HeR~!?*cKzCU+= zrp4?98v97l8X}ej`?0a&ox)Ex#kl{H^8aqlGPnsBftqXRdYhudpF|tIzW$Q37I+b32ih zj6l@#xUJQU#+~ywdxo6DygK4kA2OzV8aC~WQpRPgjd$M(Iv={xeX8$Qtb6=zEfd|5 xZLfuxVJ9VuZ`f1^4#NLAH1R^R4`9s;gfuqVL(mwLK9;p$v!^-Q)=Mww{|C2hpUVIM literal 0 HcmV?d00001 diff --git a/assets/sfx/splat5.ogg b/assets/sfx/splat5.ogg new file mode 100644 index 0000000000000000000000000000000000000000..a77f465cc27b2e2decb52915dbd729ff556e0d24 GIT binary patch literal 21964 zcmeFZcUV(T*C@IZLI|DEtA^ftSJY5K2Wf%Oloq6eR8i5;A%N1QC?K6cgdkl-lqyZS zfPx)R1Qi8Tz?_Z#-uJxsyWexpeV+5&|IRSkPG5UgnYCukY)_v%XA3}qe**nOf7D@8 zd;xn8as(0?9O~g4c31#4XgK@_4Cntg?tq*=?D_9-*b@TgM(dW zGXj75r!6cnmUgx$e8R&+!j35_dWYiiVZjkWUJAjX=M=*fRkhW$G*uK)^71HiUr&5c z82%VaKNRmC?i-0m=?4b}1_y`d&;F(>TZLw$oI!cZ0wVLs6)lfV#n&+sr* za45zS@R@UI6- z&5H{FU;sgi{#wO~iQl;PIbO+Yp=H{>mRdC^I->O}ZTiRC5}rZTE!F-(^?W=C3( zHUQdKIFZxl@ZpgnoWu)0k_AJDgllewGRV}H#WAQ1q2kR|K2+vd9{W&RaqZYgsg?;n zM){U0Q*-56d(S%$;I5a$#({_~*!GY=H_E_!f2FE%~I;qWQa)div8P=BX|0tnzV z0i!HV6AI@DMR06V?DUqLHHZ47D#q5%0t z5O(5On8h;?6^9u4Ux(N~`~pry_?CCR9|577>HY^T1aMg1+X#K8zmUKNDYxIDiYAJ_ zjcKzKy)UcdES`RpYF8}TSyxc}hk^m)d~ZQoN)H$ImlaMFg^imq6;=IBMY9*vk?W?w zGQQQDECYP*U_0NbBD%T-9N5=!qG+YIlM_s(<`zq~cG~?N?;p0PJ9BgVk@jn_N9tm+ zelPdDIswc2^Sck|!#~TsP+Y?>qBVIm>dHF2kEKkyZWvqWo4gd;G z!XKH;^+;D9ycut)NB@_=|B{^ZoP$|{PqM_!n#C-p~S=e&9PI5&| zbK`9_T&LCX(^&j$Bz~a{@7x~a*!GXW{1uy*&m#Uqat=jAMElxX<80Xfl$7(vOwgo^!#VwkMENAiU?;KA|f(Q-A@cbtM0H7z6$?VTMVr?ToYok7E zBagK^@xPWBuy$6>VpS;>Y0ly>>iogsk%N0lRm+Imt!ApR=A`mXNnq{ zYzW(qvcXylCQK4JXWlsZ35D6EWstp$b>-UzY=qy}(t*n!0=Ufwuna;3EocPI4%NPQ$m#!pg;ujb+gbddL;AlX{9g?GZ!rL}ID`fKaqHa{mW2|uAVBh4bT-Q5 ziyFbx@r%v{eshjjIBp%*BD(2+Ne8H4x702i(P6Eo&s1YAp?ezd`)}hFKt+QUC17LY z!-~~M|Ke-#MZTDGRMSr;_(6516MP@5xs(3;mm>fG0YV250FGhwzu&3Cm>mGLvb`KZ z`@%RI4*>{x#}YaK$i_z>`R|AM|6clE073{-0FYdc;|>uVfnM`;L}$w}x;X+CG#B{M zoRGuD(8ISAP!s2-lTz~%2iRzVS0S7uQ)<@lwDPNb%ZJX(nN1sH;XxxPRYVO;B1=}I ztLdM91LrM8EcbIFnQ?IGGVd`#t7tbB${0hAcf^I9waeRR1L5wxF3!{_Bjz8P3^ zTG(P;Z@k6jucnqu6;+eE6hJ^v|EMU?xbrFccd?oUC%6iOtFbFj(Msy!2qe-SMzH0y zng!VM8Ev^wQFR>&)FkLX4QC@+t3Q(6{N-?qQplIX;eodF@U*g5K)PT_AZIE{G?`(MWgyCv~3TKX)zvbN}-HXKLQbpWJE>@Qx?apdAx3R2#%@ab1J+@Hevq z2zrp}x+%(QV!7F-rd)dI+EU_q`A$T#UWziJs&d9DK$-igHr?&YTqmM*+Z&KTU>P_S zCl^NHs$8cu`8M9-0AY}7{$QD>s%a}&22RCa&a@LOqxAFoXJDj?oeyjM$?DSY!^|kN zPM!^|5*6v$hh+_|b0WDmDg&IhV5%rVX<(Pvvq5>)DTn>>k0ZA7U}Jxf7eu`>>IR%Z z#-YcjXUNayhK~ep$`0~wt_|2P5rpyAb_Nl`0K)iFVG3?pIrZrOR^(=b?W+E%00DvH|5E`10*CqA z156y6;CY8_4-eEAqO-#u8hWsmKmGdTa!mT(nJW6-i#Pn7iLK`;D8RtTB-D#R zqZNcJddfn~wIpw8fS!PqQMS~Sew6ZUekqx18bUv9(q&+1V&3>(2SI_xWuo7eP7k5S z7Kal=L+G`%UMEQ|e@PIyS!QeZ5e>otfFr;waQRvQL`2F9->!Z60nj7)gr$|Wb&-Fn zj{`pdz}SY6lH#+Xbxh|ZTF=1H*woz83S8bGe>5Q)fFKZmH=Kug1mdqV1}*caKXB-b zIaG_Ui3>KOX4D|69o3cUXKY}Kb8~W_a_gQrb;{VBDokaes@huHQBmJHbra6dYeHUc zmx|WfWWR9vIxnQS`S8c1=;`@%B(QeNJ!$UB%j2gHwD0a6zcIf5^Vf;paqr!)X(yw{ zBR(DX-o>;(pN)0oQw)Eb_b!dK=a8AaHu)!=sHIcIdD9@}TY48xGXcVp4$Mh0QI!)OVlp zC5#fph}gQ7MaN;jf>Qm5jj($EWsH=HV+yK+<=fJr_k$yWT9;T$>2(h-rAqr$9npFi z?-jj#^YmzXVxh_Wis|Xq;|@~?YUWSjg%P`+%Pc~puQ%MUFCs@)!|cv|Ry3C&e6ML< zZdj%V+OC!}y?!kYb6e7Hfaj0OGt&(J6n;IU3J}nJF^dz0v^3_-yNz8(Tpwu1l-Y2` zs2+rM*HRUFelgoe&8(fGw$UkBcKl@eoyL>_w_B0o`+@(vdTD*{-e@e%ppQ z#LGuSw>(IC0O&eh6j&t-EaUIHyyamB)>KM%w-NzhD<&|;V9rUch13dSnaz#=S4GW_ z?aSKBC+xy*^12sZ?6uWa zr!j$a-kYx>eyiDuy?Yz|1$|3Xen#=#deFU-9f_BDyZ3awHTNEuo#Y&yrWL48stcqE zXzKQ~SFUpEZp~bCHY4^>{XCfw`l5Fpv)juty;94qLjYwp0I(heK|>RMSQq4cK7xooOuVBn*KeGaEkma^6U#8`f6TrOFsDcWk3-oAV7<#*4 z`2ddZ#&_&{jxwA}3#Jl?0Y#*w&EuWj3v^?fg5I}xHtDWu=Fz8iu6(}nS-~wW+K}_U z>cMLlasS`cmgM>=!Gfu)ypo?5PJd4Ei+k%|`ei*NwE3BB9yBW$0{_%(Q8hS9Bq^Av zK=OWMy$>qM9^O}fk;sGs*7Y=U7kVZhoEQ7(|1!7^m;>2$oktM(p>pQPHVp)*Jh2d5 zI{08Y%FCPVn_%J(E@gzD9^bEAQBk1#%(33q7;~1{JUQgPPKhkfvt1t6xjy^vnR(B zUW!3=*x8?zTy&6lxFTL`B0Q7|527`+T+5N|i@6nv2#72X-#iOrdN+IOc)f~tCrjSo zvTsqwRX&3Z`d+S&@2~$Hm&hHR^Bm0yuzkHqO5RXkDmmIk3~$%Aerk3ETCjeLFGSt1 z`zwuD$u-H-=QJR0J2Sbk4~R0TA>XU`Mz1$VKHhn_`fy~iRI=muo!`d=N{-m_3AOD` zQ=@KCqbxML3(^+iIZo<$I()7zF85ho{+N^69Ap!Ka9J18c=7S1(av1s!R|NXa=9kj zEn1m0vi4!a(74@+B31}toZxHoLN=Xi%a?;zmN3`;G-_NKJA=%|LlZC&&vawPt54e zkA6%O-1|%!ucwu&BwlUtoYI#h`#FX}AIrR7;e?=eo;}Fdko)dE;@;B$nfyvkUiaqN zzI*CrSp5|&%_%BFbImezr_MfHob{973Dxa)vun%>DMsUys^6UU`}}BVPY0Y{wZ|!2 z0zHpb)n|lupgWb^sm9nreu&THI-~b1k+Vl#wIjdsFumHWac2;qX}WL(y3b^04oLoD zruwsU+p}`sZ@K`<$BIKH=)59kQ~M3V^HdBhFciZ_OCBnr5_sob)Nr#3zn0AeOa+<0A2`3o%u9qn)@Wu?_uQqE8p&8gHAHt z`pjyDG=oS%Do^<)FT>+5-#K>MN9`h}4sY*2o29}~jv|W4KkfYdknY2e?JAeOhoz88 zofrk_qi1j2Nn~fs(ktDwc;Yz{%*_X=SvI=r=o2Hgif(S4zZkL2BpsY*`v|jl;3~W| z0qgl@Y2>hx%}q;A@!^zi>TTkZ=CoETLRpaz={oBW$EcN`Q&XU~y#AcAZx+8xzTf+T zBHtwIy}`vsApK%m!#P;-sd$FAV*YJz_|p)HGc>d#*Ou+Q)U4h30V}%MIl};Lto5}M(%l>a(Odf18^(`thqv*NbqZq8fqccwm^tB7tU7U6(digmRuDt08 z-(iv?d4UCn(&U>1&{AS?I>WJujPVcl^dKnP$p`lZdrnp+1e>l-PkX(kPz;D?jDc+x4rq-0}h);69 zo2+77gv&*&r;e_Qni)84hXdzL9!k^tbNJ5MLi)rHObR#b>#e1bHxo_h&k*ci?@o8&dviF#S*;FH*L`BtwK#KyTvh80a;ZlK z7X;bID{4>Xt*9mN)_b(_O#21%x9xb$r_y5TWy)l5v=t7YU)X)NTTzs#cG<4g|4uv* zCg-eN2>o_9>bd9Jb_M!CxIC$xH;tfSprznt<>tvOf`DqkIgzNh6B=x2w}oaSHZYZVUQY;p{FWZMhmrZh=QE4hRMgKyVJwL1EJJ}Hvo_c(N+(V z)!>wwDh7bxKLk+`8ed-ywoJ3~?tmE!Fw@)8%gTHI_ANdBc_Bd?WKAerg}-HAA1u*L z@md8ZsD6uL-HD5fg^~73l=($IqA!u`tNw{upm^5XfbxX9mU)g$a>G%qEgpFzIn6J{ z1{vKj3zbgj?ffNE$H?2Jj%!FEX5~vf)g71o8D;jqa&vqjC50^Iq|EYq=#I8?M@hK) z4dVsBu_AGgT{C|NT{nbsU@TtIu#JhAEs|{~6ZlBXv6N-9(c*uhqz4Z%=5^HlB52`- zwHrsQ^^s;3(f;&3UoB`@ntE6*cW(&xz}-FddTM*lZt??^>+F!BOxUzY&$X`|uicP8 z*bMr@dQP)qnZWIq{jOlO7UQd(Q}c0>%`KbS=3lvcHckZy@1wqD4NLi%VXWtDQ->Cd zn#+gE)6+SN^@%j+WhCFIehrtY#;GrYdntoKhFXX}ncu(PsTDlX8Q{kXkew-ynp&EI zmWnLq`bg6Dt!rxh891cwEKtu4J1T?i9Gm_S5q^*yv}Jam$@K=w%Z=Ov<<~Q(SBl_J3a__P zd-&mDQa(oj!13GwrolHxrD>Wj?@4jsEyTSU`V@V{_-pxlbjeS*M*je%7@hQm?(@1r zkBk8J?-;XyiE)LEw>&TA>EtQ8$M3Zyzf`|>w|Xc&?q)4Y2w-%hh$N{)rul{J$ucCI zJ`%&3F;JZrS>r@War!l{hs|ju+9?VW({=Kp>(#~LT%&bz9J?9EqB;#_v@##tn zkH-+t=-e*QgZLy znKo({+`sWX+!)}rNplpj@RWJP1KoSAI4Nf5OQ`VmU z-u->1nd-v19_Q;+Z=F&0vB@53)mm(bZP1mgEt{=9n`lEHEv<~NKmtXYV{hNUOQ`O| z2+_1})zL05dfuI4qI75dM5wIK%{Y@a88PO# za9wY$PrJ0LX`YA>L3xm!zSIlOnHxYwiQIkj8iO9J3If)&@@|Yx6Y2rJ?Qsbb$0XEO z%}ZskroX+{|K#aK{u`+%LmFOz9+VWR_LyD&8%}K{96XJM`4K}t@NNJ%%iCw~->|+t zXnDWHC=?PcAi`tY6T+aK%y}Pf{t61+dZ4U=fPLX9qu9SU0IWO#s2H-&kTZRKFgp>= zIK*in@bfYETsJLn1>6Ar^)vK1gUcrv4*d*&&d9Dkc`r=mp~_KZsM6G9;GZ=0IMssc zVr*n)Wa{ARXzbuX#s20Qi}j;1zxLur^L-|H}5H$;kG86^T_CvhR%T4Yi@*v4-)ehED* z_=B~ZkhL3l_ii#CT%J-*l&eU=23;i!b5MX_`&66x>JcA@N6apt20YY{6y7|_Mo@|= z-;k0G-aOl5Vw;3WIWK({$_qPobt1yk;F z2*}O_+6cfNHTm^>Pq$b%5g9xztdy;-V6tUW^Rn_bBJ{LSBqCkOsYQxSrV4@a%YZaM z^>$s5ns%_h6kW#RByIjuFHN*HrWFwfpJ`YSle%}oMlvBbL;10S388L&0J*eOo?>O9 zG+*tO$>u_u15%unI0m5NbGosuY-$=Py>$sTLW&a>6<8L?a`Wt^AJ=)K8dCY$gmpo` zj}`~_j^@+Ha6s;9Q}WGJ2x^&N2=Kn5MXRu4SceARsYx6aRRVf^a9&LSC3bJ4= zKH6p_a7;gkeC&>5C`RS#%~&ZZo!ylT5f|2z zYN5UF{4}bcJvMi1Bt$Ep!kins_w?TCLf%qWVm6x9KahQiJHZ$VXk<+K9qn<`D?ULN z1EDt_ZJtsC*tzdsZNUqfa?a=b@;y2GFuRW9B<~XJ$DNZ#2YjJ7$d$AaN?r6{Tw|{M zntsNh3gYkcpro_obZ6zz@o`K>Nq{_p zgoraH#@wZoHzdqXj^8c3j`$fTk8^bo2+=}jWcJaE!Fag|{T;`6Tb1D#;^}#EZ2Q)z0 z2UqKTISx!&mbZaid_gWp0~<*IB_Gz3P1XL+c%syk8TInIduPhz{@*h7N z0DYy*+~XjM*30ZU3!vp>#$gQ&6AH$9MY8e06acQQy=Xe|_&3^>=o-2e0%n$a4`^I(1lV|Lb*D6# zu&JaiSts{~h^?q1<*~gkv!HkqoUD;)6u3XxdC_gwYPv6<+n$WWF~q4iI1;6CI0t=Y zT1tzzFOFZPcIJMagas!B;_R7@_mWG97iJK!>hMD788W@$4n*PPtMm)i5;7-czRJ8R zxhd4vS`!1}PAqGy=2%mZo^K6b9kd);%w6g|^kSR{Pq8H4WN^Qi`U#pf!Faj)AVb5GM6$kNDNmlVnOw5c=tZa%4xG{^*eKDiUcsXx-F*8 zip)_UKtd@ti=Lzl zn?NuVJwjs1wltpl^Xq=G5VqK=Y#f8&RF4cK6opumlV-X^YH%OO(nn-D{XEGA9zM?% zu*t$4HR{gL zaW_$2puq!ys!c2aT|`KKiKN@rP7aTH^yC_9QzrJgr0={&7v$3pX|!ZUV0DSKFwe{h zM_Q+FP7(TmrV-Nxs7*?W@$S4^nR~h07lxso(fhK@Socp&Cx(E>EJ8)25k;F$oEf~2 zy($d@b#^M(NVQH6V6jfwDbp$P5F9VZGh3hudPcoz7+y5;y2^Z^U*kKhEMHE(bq%vH zK|p2tGh=JH-oNYef21TjZk?gQ7B6(v{E-qt;2cGE(C*Cf+kQD0y~2Xc<-g%7t{Ive zen?F^+0i+~Uj$nzxci<-S!WR1;w*#$m6vrS(Z(Y)7)P9ro*JaUxnwrbtLal8W zoTsvZosl2cD*mww<#n$p3^Y$L>wz^rH^RL^*_QY0B<8}U1 zx?Lqw59Zj#t1J5OT}(E2&dceZcF9CY4S6SHCkpp&HQmdvuOV=L35^I4X*0W?eS)A; z>8{4GQjWiwSj@n=RSjCrXk|X_%)*eUekyWRR^rUsKtNDNTATrW=w^cX)&TSZ zKmYgWkJKh*RD*CMKXQ-o`RK?{NTyYTGGGAj*>t_y3(@~I{1|~=-g}M$o%zXJwCw(N9gY};CoE@9>m?;9l8dx-Y zDEr;6f}4rMM`W>e$Pjyr@AXRtik#@~oLjvj3~Muh-enQief6kdy(&jZsO%>Z7_Cj@ltwur==NS#XDq~hx zP-kTUy_f$Dr=v=9<>HQ~@HyZuYf^>5V#zqnq!o!Xdn@u{tT=T`l4XpOF)N){ehPh( zj*1lBcv*nE_+mpmO2KgWv#Mw9m0wwUAuLl6C32gG;tp?r`5LZk>uS#8$MS^8v7yS` zS@PDI+Jl0VQ9-Bg?>b)gdw45oHR{yR{e7NZe_54tF?-N=m?$mrBctKcn!O69W%$v2ds#DEAp1vbmEXpB%qa z&bQPmCw;f2{BsQHGxY9qeQW!R$LA>iw4Y8ySupJ#Pff=(Z(yQMi)|>dbc;|QER-wa zxIO^54W>(JvuZCUWREB_^<|2A@?bIaH%K4xGaI^G^?O+5b7#exLnf~_HjRj{UrEHI zf1`YVT5559Ne=j=+~}=x{j@8+i}|lhWB%TDcby;Y)Yc+x3XmprK)**i>NSc5B^Gd7 zgL|*bylQp)g5y#}>Ic27>$~&&G1pLHXE_=j;7q_L>&8yAP{nV_$DV(-Zqyd*yu{T^ z`)Dn=DS(|B0PK4$1A6A9it(u;r^IWP;8LW{7QT;!g8cC%tSSLJukDLR`$ zK|tE;6e8t`LfG6hWjZwdhoe7ENE9Gc46E9QmVG zEcTgoE%vK74PVSVEEKS&^2rWxp(JV4qar!!ZVQ^T0`y66s|Lr9RVFIKhEfueWF^Fn zJST*qzeVchx&SkLgqpGJ(9mNoJNmMM5*D}Urwitpcs(XSCna2onX(yRXsuI@d^r|= z?=kqDMT=tX?WtB&Q>wj@ zfq}j)*3Qt>$j;H(3A~13Ms=rRsCrb(PbWsm*-K<&q)F)gOJhQ^{)6!@-{&{vEAn&m zp2UR%GeqT-GAGvtvS0oWBxlhpwgLZ^i<2W$`9DY7RE#5^2uGX6^BPXB{@(muPhB1u zG%X3M23}wrgCch*m!7V7Mn=uZ=EN*+ywjk48@)b^kd_SNxET(lgY=UvmZb=k-z=}? zbv2BVRp6Q;udXSL=xP{@)fD&hyE6_D8=TUX6T}Ax>wd|0ykq#JJM!4%@${OfNN17q zrHQEv%3s)Hq{g0Y(iR}}3E=<(Iu6P8>MO3m?{+QMy2zRB1XAg?^GEgP-0mazsG3tp zWzxJKoEEpl4>;78_Mgo7EY$pRlCdc11!7J2ch6^azT*R{EpH9ctXr)6`SBFb%U9A= z>@bd}TM_ulkz9{PTxRiwmy?nCg;ObrVbI-#^R&yTe=!Z-lr@i+2pk)p3N%+Hv zL_0p7H`%>kIAy84`yVr9Dt@XkwiO;PPioAVup-yzg3A-2PEK0HH4!rw0sDSZqI{Ta zTgwweIr6-ZJF#F+j+TjIx+qbejPkK-A(Gsb?fN_zur%B-%G!)5npoAxUxVv`T3Q2n zeHRsoOJ(Njb(GA+IE+CWZgdQ3ZFtc%7y}orTc7KW!gZPF1d$V%x^8!pFVIZf3_ zv>z$C9X%ObonMETVI9V357H-NZCaF|qEkI(X4kRrRc=X>?kkbj?yve&Y%ZTK8l|ew z`OJI8>m7Zy@`nFIR{E1P8JiYWOhmoU(A@LgYb+)o5KoJx*EO4)($)_Oq!oXBu9j4v z5yPggk<7csPZf78gx+4J`J$rBeqcW|w+}r#*~~gTmfJ>$brO)q0i6iOSC&*q`zzm)C&6A18TJySWTcxUM$zB5rQg>@@tL3qh zw=yP`XJ$!L+n~W1lJ3!XlZ>2u;eAEZMPJh+z4arRzErmJ~P@tAB!6}c6BA;a%9~e7>M9F9HCMt8sD0i9N zX4CgMzvWfz%${280V%AxhY*|d@3Aeyz4{)`L($4{v$PAZXqApFz9<;3m%S_mtrE#- zj(;@hPx)zl@AZ3bmUNGAdk>aR+%5H{Pl2J}Oa$Rk!&NnA^W5xj{0{ZUo`+;JwC{|d z*@@1z^fdtX9jvTISFP-0^geC+9;)~_A>-@W^*fHhmoC`nPK2N5kq=xcbdrEl02{n@ zEPi?Q=9t^6X{$ zs6e#Btyjr>QRJSG-%V7=<8&z)n)ZHhb;_VJLbxmtE0-egX{78Oo_+F29GAtXYm_u< z2!)R3$j7SdBIgSCR#?N4W)4kXUq5bNl*vE)Xy|$Jowf-BKJ z>MD(4rq;qhcl(rwhpQ4-RVJx-?##&SZ8Dvo>0JZ1$D9*;$wl2qPqMB&dm zO4<7oI7k%NocOVs9QYGr&oXu%Mu660kBNG$DfWh%uls02l^2UhwImWfz16ch>&@A2 zncFCvW0{}&Vc%BH<=mlqP22YIQ&Q96fD6}1iJwQE3cbd3j{!DIk9cY3dZyy?q_~mv zy^`^#1qJQ5ap@6vgf!XbZh6k1A4{#?amwA!+8BI}ZDPCrvV;U&<}%Z;syujnPgXSl zg_K1!NvoKr$J+%#@CPnQ3!St=kA$YD*TUhtRe0aWXIvTX<;8`ak^9PX6MAr~^=nP@ zNhpDX7qAl=IUW9dI{bCE%i7%eL6e1)aFOLWqc9!E&LkhkYoOJB;jPnHY6?O=()LYr zQR@UoN5cP;wvH8w`s$@J(Lb`_R9~D0#*XIjefXuE@k-8nrHvjxQ!4}RKE8kYDsVnM z8;Yh!uk`jN(qC&GmMUW#?%-9ym};*Ey)M6g#g*NK$`|8b^K0;FN%Pf8En09G1r+5u zGAUva97fV@;cH?^#~FfrE*xMWa44sYe8F9}P=Tk(wAzc-zW(*|LAjhW1J`Lx*N^R` zwvVK|=)F&?;>VX_JT^=BW*@?4iS}54iLbG=m9Av#^wj;MUY9rAFT8qvipS?+Y2a2| zErjs8q00VT1$XP2bW7{pBCLGeK{xi2Xw-6X-AliNa|QZh7?d>vDBNuMPC*TO>}nvof3fgbU*&t!J{ZZKdB z$6#iy@9A$G+p91eUEp7dc0BTNT`A5m%img`?Q8IL;{N*Lm-9=iPvf|;HB$W6Kmu19 z(_OC9+l*g%csANH-%CWkjN8_)8QXzm)8|{#02`3aiKcH=Wm8=Gj;4H}0nFum$lfk` zKbeYeyw9$^-H!S4iu22A5mu&hqe>BgUt{$8#gXR8wx*f|8H%*^ ze8@a+yYQuJB@f2tluleUnyX9b!nD@fFZRE^S(5Q-b;WaDEm+khqPG%r0$hbsCZ$rI z1ZB9%xR%rf~XkwPgi7i6hO@ zYasN8lq>)^C(*kKW~dY=lIYXK&9SHjrMoRhKm1t5peakV1ul_G@wm-3G3a%hi*IJQ z%E{ldB_)C3JgP<{$8!+c6zC}uJ0*{I&VS4GxFGtaPXXt$TVq}juM{B0-eXqv!XJ~R z?Hy&E&J$5Jpa2lg^Cq>k3Cuw%n=YlE^kk*&S)lE*K|B^s-5R^e2QU(P3@7BEah3S| zxS8yigfC+S3$#E^{(g+u3_XmopjY$0IMCA+19SwkA)5VQ-AX`yCu2`)!DRp)z`4#b zNMvT`Iy|~7(HPa>=ePDMS!V+NDG%r z;xfO-#acuPf>^cG;sUJL*I`W>}_fTbeFzJs6CqI$;ppI?obeps^-)XNxt2u^sw-rTp)189V|hMA^l z0N9x>(9H%Y0)%A;8bV}SVv%x_9O%*L_GV(?*k>Kp%8)TwunQ1Ks%Jgsq2A?gN;+bioo8`rQeSLq@dC*1=& zoseAh;1P_UdoZq*mzPZG)?Mv(`}JRNwpjoy42a?7{EH-+69o`v=+dkMGe+*ooa_QuS~JzD(X`22mj^eNG| zDX{lI+OAa}RS=sha0rqvfJ;+>ZSt zzmAVY$#k%bVaSGnfM-6e7^j+de)>|c(x-K=E_cO^Gy#|Sq6eN4l_y5)tCsGxECnCvaIVIlfcj)>O$YmYM~M9K~ILKPpg;j{5rJ!?M< z+8+W3Xc_hj*^=wulJ2G9m|^tn^valZ;LUvr@0g?m9)~v`hzCZKrW<6EbUa< zu;~@XI3I`}qKL424k(j_Wlk!0vjO3*Cjf5m(T!&(G}jZ-PS%wr@zL!(*C>d%SBp{K z(gb>14E;qSB|U%qg1cfF)lCIJ6dE8?2^U&xLgf~%o>{ebO6ILuz@I5@uzX;@W{fH| z;key!ceXlo1gSKpq*~_(H_K(RXI|${4Wt22X*h=QbczEacB6XaH6AMlD{&h=To#jo zQ*P`;f(a7B&X(ln5u2cd$i$g(42!Xwh~#7CU>c#mZg0dNL+>IqQG_F|K{GQHnNmTy zj+3?9EunMvdMkGM)hN1hk^BKkrA#>e$4${=Bdr{0YpM7|JS~u)PGADua{-B7HMk$O zeE$G8(H-_}!1+~h=3dizMxg0#?U?k+Z*2fwvsrp7KVr5Ay02M$*6rusNfPzAf9c&> zZY>C5uu`cqcHS9+O0)8cmq>h6`1|>egjP2ZzVEx z`5o(Cq4#Fn>LpXCz->-z1fkzVtl~zZ!UrehI;~pD=to_dgp1u$3x(1~C131ca%uK| zq9otrr}45s*=-~M5feH~6?4a5N@RZW#OuS4U+1crNjDSX0z!Mj{Pj~1s+K_6VuoL* zdS%FvjCN?$(G!cMmDSE4v*|;+h;7yH3#)GNQ_jXrbEzTEQj@%K%A$5J#NV<$%#45i zCTAszwP*CT9w5hXLE-}KwJAo9=Q}Vx16GxbAt&DBP4M1i@1Y2`y`KxuYK)!oUm3sH z7JqmHW`{i6X@U@N5F_7BZ|rWe=O4S36mp*i0vmg!2h0G!1GOfQZ=nH^lv1y;N-Zu$ z^HHbJn;Z&{l}^mgzUP^fz6yKs`+_=*@9INfNQIJRoJKsg!<1`6_ndkaC@d(=g(OhV1TUcO=nSGlGT&6{$ZDN{lSGmdkPG-zt7qoP5b_PT%M%&pmTDj8#JWCLM~Hg@9NA#VleqD_a@HO$uc`?!wJx+HHz8se$jtdu_8V z?@RFX3pmUT=%fKhX*&YQa2>uz?Y=V^rxoqa`O9>NK033wA<_15iEap44hM(;<-N+e zi2WI3F6a8%^74CShN=Z4Ix8cPtd3=MLG|mLPn~9{4@#H!_OEFv9Gwgo*UKMzemv}I z_m^GjO9TuVW&hSwHnm&r@kO5t5xhtDn%Da4K1CJ1)z74uS{wt;ZB)y!V7Zc=u>OJ4 zqNat|k@L64`O9@aTxKmoYuvxnr8PPJ-CH6#os0?Izwx7%@qzaK4SF@MsHf}-8Bub9 zi^Vc$!g3HBABb-^Pxjc0d;sLk%Jw2z3?>LJ;`q&zg1f5w*B&wKX)r9DOpkb zNU53W^1Uy|hr70BRP(|%_O_);f-w)jzRfwd=KK=y;);rjuBp*GHSz6i{@2CCQ_{zO z&#`9e)GGFP=dhq@5vjQvy11lkIKpD3XJ12=QDYaro`j|rk0O~)E=rPpjnDV; zit>?iB*r?vU?@$9SAb8CPp!;~_jnVhcP&(IrcD;0k>HfFtHs!u=&w<@U;l{?+MIF2Ee4Rq9Rk@QdAF@_?K{lAghCN!%o#&Kj>3M2m zk;-nJ->T&^)x}IY%&(iPN4;zDz_#5hz?#90Ly=T1&II)q)nYoRwz*t z6kUl@yH^0fJ|qC3`ECjLxdYF@&h|Ap?;Q(|0nlHTmrotbZHak*6$}7gW+dlpF>ce= zxjv*l=t(IvD*axJo3iz;msIy;-qaSEk&%Lg-5pz<)XDHsF*=LZ8m{XC001D(#xN(2 zSEEf-$eH@a)R>81M75e!uGnm3ag<7_8rimjZtY5kQ4pgz5LSqSN`eq6B#rN?@8-T`Iz>NKBA2)Lf8% zAfE#O900%oc^k_c;D&5G3$Xz}V6h+r$kv2jlKK4CDFXliQnCp`0{{>ZlLbCzM9a44 zDcyzoK>!#tqH){Dtn9*aDFw;Asi{PiQW9W#VmI-l!_T%tM5tD^E)4(xU>MtdP{ZYO zdM_9Uf|vsvmibt7$>}U0DFJ|&aT75BP}?UMOdy+zxbi&$!Y82w zmSuqr5DS3L`WX)#06@|MUJ~G)dEKx_N=c_1OnSWN(0!hq)m000aCG5|RJvKfT{08se= z=JBIM9}WNj9%iK5ZIOn+C89}jbVKf$KU@%A>VjKY~ z0Mda0#+n62MZ%($g9&4y!2qC;ah^;P0J4&KrWwevEQ)*f zP&F#aHRq20aM{yqbkml5nj`Cd-epkJ!1O-XG!nv04mmk^uiXy-2C&IhqpRee$wB}P zOI$FXBblFn@mtZ3e^<*QDdk;SOsS_Z7`U^w1#l6MHooe&WYYx;T5ztrApw-!=60T#>C7q$>kV+=yt zIT_L9VRYkKvgFwUTL8BDp`c+wnb!jV-eo+mPMs`3eF6Nb~HF+w(kS8_d>+ z)xw&!ZPZ)<0D$FMnk^q6L(0?4ICIe)`n>VQTvwYv{;+m;b}{}*!;Hjv*1xy?SY4x* zWjnXN-hO#k|2WIS~B$JLy= z5>e{-W}hN!KRGoR>fUDK1pwxG@|)8G8}a6j$-5aBIN|TXIoHmO&HSl4?*R6(h5~9A zzpJWWPlBqV`~cP0<3$1rm}P3S6NqA(1`fdPE4R(8yE7H@g8=K@?mW*F=Rb^iHF~po zK``&B9^g3-dk?2(A_`^>`0GY?E?W$f_q(yz8xU+&UZuZK!HO;c8HS|JwE-}AKbWyl z&-fNBf{a9ciV(AbDllM#&p`h12-WmzU=|dg#OX|HwD_ zR^N>5T(%>ZZu@>l@~dCvUR&=lr!`ZVPI7%YGy%N1yPa6wnwnbj$T4SLjfQ74=W4xG zTfKdMdTnfoTFr8EU|=sR@CRiV^Kc)&aqhb$KJI?zZ`-+A5IDKyGn;7|&IU)oKGo!w zw@!1nYEavX1`hyq?HJ`tUEbH+X4`R~+tB>G&H}(cXJDO~zLM$e+#Hjws)ENr8Z7uALh9L-5Xrg~HBan&AB8{cZ8_#JWiprn%F6hmxhs=hpr;8~rD#f;QxwG-NGc`|p z%Gy+#qrw7a5jV3?G#fZTk^l%Z*T0cbBf$={|M-9mz>R99h##~d>$WWbixToAX;sOC zC^W8t4FKL{Ja6d>0RVIvk8AltfPxv4%X3s1zO%Kq5pB5MOaTA@P6x`XSL@nOV`)sy zDI$Q|eAYd+sW-}=tod2|>knJ|H~WV#(zj)C{dT^u^tm58&aZvlRox;#URtWIC9=%J zsOrkB-Tl9NZ04`$Vah`mFyAw5049(&zr{dar-^|5q*J}W4Lz6F7y3T#U^<(8+s(AW z#)ZfpVBa)8|Jlku=BMF32-E5QXYZ{BI6tV*-{X3Dw*1-5Oac6_=G>X2pUoi+V}L&J zY;Hrc4*+aH=LeYShT4~l)1C!%ma>U#5uzEJ1ThNPM4>aN-Qh6K28I8bwN4HrEy*);P{s%De$t-2VH@D07i-L;$J zz0EF)gi27?o3TJFaGL=HoG~^q#wNQZkO2uVKmvwlE~zO5!kZuQp;9SoZlUuJ0N!PM z+~OA-0Jzd+yxhuHMWWYG0cYMK-gCj-gSAQ9X02M)LQNF_0O0AqjdmX&;q+a<|HllPk>yjSTKKb~*@i&QM*z`9G^F=WL3+ zv)x(yXV>|Bq1_p0zt5)EGS`^~dy@1L1xZ6MuK*Y`u; zmu(;LVV~{tQ1qIq>t$FVtEYkUB4;~+o|45VzDkswXCKmfpP_fjAUAVn!+*`n*D}8Z zcgi!{4R^EN|M+ElQbgJYRRJgG=MQOm8fqVQ@c%pa6@)PrOkY^ueQXA- zGxaftfr9gYCh2*mlFEWC0HPaU@{5zK03_x-Q7rRQo3W4(p{3G#HJgOl9q0eMo^FrNhxVmO4345Q8+jH zd!F-r@AqEkeAjiZ@4qw59wyezx@X1Ansv{u?dYfv(7-=IkVeVxD(h=+5dgaZ^Y`?& zarU{YKvS%}`Ui!(e}SLDw6A*pJ6!dIL8XM-$PKcM%l{G{q5mC97=l1LdpYrHdppA2 zoNbK$Ab_jF1^ET}`NjB!;p}?$c7C?b9*%G&4}WKGPY-u{4_^*+sNZeqr=YE=sib9~ zFYV;(>*XWK$LHW}Z|~#j=V8a|>Fvnp!zUymEG{O<2j}5|YdG85d-&K(!WF#jt$m&S z?coZZ?(Uu*K5%{>Xea|!0}UlwCFb z`}**@dkI~GI>_l6sOlR?+u6I>``X*x@$<3wz9T9uCLu1!55xRBJq~#VBN)JefCV(* zgQ)2gLjXtsuwv#QN^?-q3Jm=#feYJF0)PQf?6}D# zJE|^|5{@)%$=-z$&RXIXaO`;9w-UI0-&k!u%3I1^JtjF=a0pE>A>IIl3PTiy-c@1~ z%MeWiB{B5gBMcRJ-gumqh2eODBk%|f!M)NnEy=ygl4Qw!_LgaRe4dsWH4TAzBis5e zEQ=tYNr~OOe-hk3^MFIoB9BFDM7vLQ47unubvDvoQ9zf8+1>#y{93E6VIyu*tJ1v&ATjvnXqt=zrq(;El7Z z_-E>H7${_t$lT;8W~3{AFHwvh8C{D8?5;=x$4zDANG(w%WI;vQ=v z_yYo95Xe<1bj~UNe?XQ#4*0?Ngu=d!hS82laYAF-&i%$w|$cn9@}Th4Xuz_oyKKkV|3CvdOo z{;T*PAih~I(hTK?!-JEtY$zDY8Paa}J|s#j6d2(sy^)lxtX37FqeshD<{SQJ=5PQa zN&ZOjzmh+q{8x%gQ{y>bu{Vzkj&WZlwf&Ql2Mzrs3Iqa>6myF}Qk>MfQ{YoCq2gNB zx?svxmaeD9QTA7(Ag03YQsl5`|0qdxmiH@;3P>ydlX0Jzr%12A{*O5InO>KS1&Xf) zdGv*(4Gj#9{oPF-`>nJ`SuFZ(yb0cTlXQnV`o9X+zcmLyN)!1;Ul{GNaF)pVn zyI`-X81KJmj#GR^R(wTl{BCSAdt9b-TuyaIvD>TqgUSV| zJp%L!kTx}OYkvJZN9orPL4B2||C0d#^rR4||5-MCSE)3=O3J*BS%0&I@bK z3PXg=0Du;NtP-dwC`1i7_cm%Bn{U`r{-Rty$BmQ519U zOMoY*%7K%N`CWq6I|5FnUdNdiASq=PIbq0!<3o1o_nl2Zf&3 z!U%F{1i8}R;{RC+ArjWbfZ{*HK!{!&z+MaggA2maBcy~7hIW$w^YGu`(iMSe{|7FF zuqMJl^Zy*v{~h7~Qs93}0Z7DQM9_~)zKDSf4J8f(F`I}~xaucilpse5!9?Wp7e|4M3`W z;En%&nE&s!{{80KTjH5z&c!2lxz%SCAK61jP#mK$lqD_L4J^l<`U=gPJ-*l(4ccBH zvSVJ6UDQd9n@GoLL=C{1LC-t!%QkIhC?fJwY{|vP?ZphKy9TDtM`$9tS2sT^EObNSvtXS`6?7vi5A#ZN?>bndQ|4 zcJh447|LiM^QMZz_R7XdPZfadWG%JPEU1pH%npLfOVg8t>WCnN!xsW6P1lqEkmm#0 zANddn3?TkeJKjx;pUmJ7xhX-<+bebzutDTjO)U>BV1w*dm(tXHmxf6&XG;BY`T7ZyV)iM$F&RLcKT{9!1l4~pcU6N+e}^*_10 zc>j57`Jd;P|37n!rml6ZMu28A3LRk*nIu%poKKmIMNQX425@j8uFJ&=d|*ybRa2vs zPn2M1$;dQ~ual1zz$q)8Gj$W7nv%dSDor3V`g6#7suCz5~YjK;QBVAnK_tnd2`eI5wd6_N!eyQHciQ%G=d?GuxD=F@#9F#$qa z93WU|K6s! z_-i{u1i^!F{Ao~wj;s{&xPKecQz5vre;Ob}(D?r}K!~7W{`P<}S0;GI73@{!Pg-@A zgNlFCzYS#&BB=6j)fFPB_|JHM5T)yJ{w+ewFZ$K$$Hd7qpe0l{$tKhdUT`uh| z9aL}MR#jA2)z>$+xMO`8eQ9_pd8v9SaVh$XUha$N<_K-fPV+ZIEOi`7|T zG_WXG@aBXF51&1J>u0VgO-YG+Ns?%(8w<2^`+RcwvSYb1_}=b>#>JBlcozruODGle zJ4*cseAz)dxq6}I?{Rt9|DppoXqorxqh2k$mk-Lnk979+y)6-%Tu+F~Z!8t}5wss; zc^Tl}5$?emz$39Ab~@GV^8N7E`L5aJ()>!q&kf~hfjNbX#ZyPe32XK*K|2b^iKxI< zf%k4kGf#G?ZMNu%yy`Uy2}AaZC*>~hiwAFRgXs=FWzN*E3JaE<0%yTU7oX@S?}XQu zVxoBg3Pu2-VDEs>m{#4ua?h#w3J;YO=PGw1K3{vfp=6gF&6T$Cv>j&(MS)cLi5aJsSFV=rk zlYtL{1??wF%sTJXyrsYO=5@O>RVSI&yo2~2bf?_&spd7)73zn9hXEi^XtsBMtNvHT z%g3P>feb_KyP-Kpvia*H_YQ71uU$m>$Jx|3@$j)UzPK!kb@L>cn#JXRa5jAW;)UYp z=efyAM>erj>)+R9`3?_qtk0|$_mfBSL$7xqQtJfeYct5%`Ujp)qdhClRy(bDCG<;J zkWuJ&Tj--T=98tK#MEosRVclHzRSAo{>N44qgY^n42(L^p{|XvhIw6({@QCX*S~e{ zxQLBWvG!(aFZ=r*HObWcq-9!o;G(bPErx@$-yc~oZ82ouu^#WOjGId%2rUBCr}Kog z3Qrv{@dQj{)65=w%M_~j5R0i&)1-ehlAoO&+ocrqjAoR^Jz*$bGfN{Ksbi zDqe3RXnrRm=#`AGApXfULX&i!?#Eu$7sjJ~FPxLC!k-z<9(KK?ygqyTk$=;@7H z*JzIGw(};|Z`It4b=W{Z4V^*r73l+Bb^B8vlZ&4D2n%(LJ$gF(I6+!t9{-q_Iy?$q zPjiMDRa^Hxy?|G1%IWm!{ZqG(7=^q|!OjISCgQ)p8dBabqJ7IhMm3)Iv*PE^J@mC! zeLn|;sPvRsaGfojAfUNdoF&S-2@Gn*j@2IwYt|xhG@5uolu>J9?&Txhv-;lR zyX<3dLQ~{p&|x0u7_Rlzc3|FEzL=F{_n_lIn2Qwy@!nzf%ZJ4KcYp6Hd}O*{BqnrX z%GHb-O%@~k(abTyrhTp5{T^Q=os=le3C&%8fgSNpoxPBF=6j@tYzVg*ojg*&-~ENs zfofIzv8V5E|Dvh$-$`Plra^TDf}Z&Vo% zgiKlYB^83+997QVqiAh#RLry<2UvwPnbY-hHE8q=5@ob-KjJWi0uqtZ(^?oTnvxK^i%f z{3sazo$%!H*MX^w&LRU4_VH~!hGFJi51#b+B|8^t=~U77)V7F_t~=(}Q>x^)bLH(2 zJHbX3C9qm=Jlt5!uE$%VpWEjxQ$0r2YN=;2*!uMNcV$)MN40OHpRYF~0}g0yxoI45FV+9F7F$%(+LUg??L>R_E+^UF^Xc zj&2Vyc1Fy8Z#EfbIdQGFtE$hesG-GWY<<(9=<@pI#Y_LF70c7FUoQn}Fz0qpZ+-gm z<19+&VIaaao0!3F` z|5Tm@AG5Rlkp>I5DHG?A@TP<&$z7R{x!V&z^xDa2YZ7A~&)n4v5}(-n*|GY9-RQ#5 zztle=QCd%wI#`b1`G^YRR-y~>qpfGEo@UBo2{|QR7(J_TZS~qM?ZgYwy`TK<+c;&m zwGno;N?A3Kyg7`@o*Y@K*D+*U|vN>bIN1n7ens!+_3$L4sgH6T9G`jAYk@fTN+NYk4`e2&b3`qU&%O z)kp`caAY1kVscDq8rG3kx-zM25OGfHe#hy0begM&nf%nASb@ zZ#rlhOShGW6XuuQX~l1~Oij;D{AOrK)fh>jQkD3uUCN-?z=j|UsFiWj6icN)YPxHr zEd8b;)A(8-?-`trv4LlsxA^U*U&DAp%F)vin&)nX(<1DQm`Eo0CCL8lb9#m!sxinM z75(rb@$j6%`1(Ahv9a;Fv9Y5MxfkGQ@e zf#cc9$*(VCd@p|q9?Yd18gB<1F4%W$V&W8bOg-IrlGaL${A31t*5@t19Y~RoylPTP zoV*C>K7YPhTU*()kUv;K7hvsOARss<11HL3-kIy$?S2A%%7%6LvZ zBOOuj7lnSkxL+{eow-!5Tm)jn&oXMgYtyiguKG^C@@3dwJ)hOx^ zqDw!KyrHWlN9|`OANF@Jly2+mv{X)vTV#9mh)RlNYvr7p1ZD5QCYx#Q_5{do6(U*Ci>Z zM(kLc7C!3jrFNwb$ry1doC!U4+(o)WBB%AW+vI)YME*(h#4(7lHm*3L{x+`F^N4w5 zgq)$Gz=G9v*G#GfH|I2(;!I9BoziqH&Fff1%F|7Z5+!a2446Q@4M}?CU{wGU&QNNU z{c9VOq(>xu{(K$b49cXD%8M+Ro&@u{is24O1N%vfB+Dm6Gbp5>TQsG1O*4W>kA|wO zre{#k!qf%9SVk50d}F-IIG*Pvp^Z4$c!7C$#{)lTe5#o0@$o^jV}%l4sbR<=Z zkp)4L&j}Skp=b^sSgiQ82)b9bZYxt&tD0ubfUW z(A|nf;$7VL0=Cd6YJ$1MYZXf<3TR+fy1xwd+0zKZPsB3NXu@DOE`TV2hoGPT!U90% zUW=hf*5&O=j=5*z_gc7FvM%+f#UrVbVrXig{d}G3RLvlBR(JEjm!Om;?LFizvhu9# zqN%QQuB@9kIy#(NSirhPsYp62OmIMDv&Pz}L+NJiJWs)eY~-b4WvsMWYEy{V9-**8 zL$`YDv~pB{*J^1PbQJrmsTYSu!=$xmF&UsM#C{V8Cr~6Qcy3w#ahNgsp3oq{BzH<_QEr=(JNbtI<3Exe_Qfwc|Zr$*S zQo1HwnQ33)rg(Cf(R^H4BlrXQ&wkOAfsM)=PSJ7OUyydo;^Vl5%0$a`1EvvE=Pt8L zB(I!HR4;lvXg>%r z_L(>zN6L|681nhEzoz6?`?&~@;GiENTIgxxspUW6z_QX{8m{x_*MIa_DfM-#xLe)l zW`F-fMJYUtN4Bx-3|?G8Xw`d0_#E+y6uRAW^T(yNs9_R+8fu(5!Ynf4&!+ixrl_yy zJS8M{W@#M6H8N(|kG2QQj*8N(yY4wXDO-^}9BlwF4wzf`%@yR^JCyF^~fUn)aCl}q(Y1tnz#1yxn!0_us~p2Pb;WhbUh z$QyM9h;ycjmPF1&SRn@||-QxonUFHl7nR4NGWTtmSc0%Pw@W@!9h^iwrIgt>}yAB!%Obt5ojaxNZnm zit!d)g;8CF zijQ6puOBXhw}#w}=?&U1Ff7@Ll<9wE7r3DH-gZhKhyg&Ca4_{s){wE(l zEfwc@wV0_F0il%Rh?q^}@A}WL8;p3Yym7`(0`Ru{^x#YqGTCDcVpt6uxfq487D;9M zt_QQ&bP*}-01N`pE?r{aeKvUQ))wK-qd_!r=AO{$gir-7vEbLO`~==Sh&90YGZd29 z@8genul*)If4uw67bUy)PDp#eZ9w+4;_M5?5n5yOLxJGm6q>qSB-63W5ba2~V=eN! z>hARu*mw@!r^?Az;Au?f)^Kkan89*gAg#%=u{Nb+6{R!MXb4|+G{dpcVbnuaA5jf7 zsH8rcleeKHEoo&yZ^H;sIi4WTzZBH z>1{|ChVuYMQIPDw)6DF#YWTaH$CU&T7v8`49_a_jPE#Z7?zrMSe0fibga*~2vGzOv zT!aR;4A5=xQ%2?bpI^kAa(pmBd;PlRn;5T1KN`dlEkrgJp96`J+(xop7;RJzz2!hLl7j;7ZQF+SuC zjp8HI9>I)~AYW0p$+$iBTxj(~88(vE)Fs6&FWEk2Z)3Nib9uO&U|pRgTIoDE<8aO0 z+1hz9o=1*wu8)G9oI@?KcYH>3HtarOjl5wBngOXCB_X_88+2piX-(E_gl2nLyT(x%!NshF?Qv`MM@cIG!RllT?9ymqr;C2VPti zJ_vg(G83GQ!N^eD>H`p9k^LCw-AgV}eN6(RbXdzYTCNa^x<7WZ{Flpmo4PJ%`MufC z-2g6sc|S*6z3#EkO#0xr{Ihx5rx+NS-Cg$d6}Y83wI6OCJlx!PkPk`EBFPf{20Cac zOFm;U1aIF!`}-Z#550{`G!jJOBUrWQYd$h`xCv>`4^ohbIZa5H#R3Yeuv3WL&~YZI zx6#4+?kc#hx+j~sF>d_mwM0y8@Fd}M!NBl$d#ULAUe^}3@D|*v^nPUjcv1DigVJDZ zzZ1e*X)RJ$Y!kuIR#~^WxL9KyZ(~c-c50+qYhtLLt2xWhQ)}8jSJY{=fWpCxxAEdA zHq$+_X;jIa<}gmAAuzQy>RAEIU30hAtA}7`AeqGnsMk~8$e$N$64+|U8 z!7xsq?KjpGuPCg9ZY_2^DR3j8`egK|?=fsa5Cn;Lqlpjp7`}4@==*2qpp65Tectbw zq{4v&CjhujykAEh<9~fu3~uD3sUVeL^iK{l8?Jxc02i67IugyAW515#+!!;&cd&jv za{nn1IvavN)OCX|;bPqAqmx#?iK3(7O1TC^RHmwLkLGRSmlqdV>rNN@Iwy=U)Lj=0 zG-}Nn2RaEWO%>+k2b8%?tLD%~oG@G8Bgl9exDHeNXw_JI-s&tOjNmKGO{n5BO52{L z%zUoe_)eKxY&;d^fF)gSV0E*lSQKCla3g_k&DfhZ%a?7P%vb}{36Yq39FeuUc)Z-1 zqs6t!%f5C+hC}mbvL`hbYW4_!d%rckOsq;=3%nuI6>Y8c<)H*Ga#pmSrqwou*II$$ znC`e%eWIvacDQml9QHqcucrOh@p1O;&o>3hfmhH#5jSY*Tn5q~2jrV!+b|6qV@g_^qU^NUzCZVh)gFX}}on_MkGI zN_%PO!mvoIUArn>5g1f1JwpJ$z7Izw;aQwLNC0UJoj1x}e-ktuPsB3jY%rta>R_V44?0nNK|v5r$-H$F zGD894TMu6c8--gNBxjZt^m+^CBR2yoEXdi2eO@v6O+@_=@A9W4Sq--^W#WI%#5cWM z*%89uQU?(a^_EIaLnC)&h~Le;hORs*sf!`nT36&fccK85$(W>z7*dmmxlv|urErK{ z%2{AgxVq}ag@=8GVL~HLY$Qf%QYA@4Qgu|HXxAB5ZDDM@NHN}GSR!tN`}o_`{sw|J zI0;&$Fb3H^^uG#wGp+hXRan$5xX03Up6faX-=f&nFchnp;hn{Pv|BxZYWr0&jTfCw z`EcMn+suPSY25_8oEZYZQKCbU8k8wH?du4n@xr|FO-7AKb-#rJm5|RxqrsEGq4anI8pM67j0NF#DQu(XECC}F6RcMd%n4BM*q-i)lE~blX+j)R0igy)HV*dUsiTxsWrSuAHTJu1cZib-YNd z9x|qS(aD;!COV#jQ_Y1G%i4;cwauQy-UI`6h?7Ez#hQ+eKPp$Nvxvi_0A~St%u|QA@D?%msU61d5jYNU+PAb>ue1+7Kn1x*>;~KsDfsUYe|NJ^hPmJ0(85>wnF&TXO z*0!Xdh0@n&8rRfKo(ov4r!%6VO+O$74{=8~e~}TOIW{&5fFPp>p|I^AV_mRFqnFod z+4~95tT0e-f5_6jjbVzYj_U4qY5lGpjPbL6*$CqtlEMN<1BoYGKQ_xxR`@%+isZ}9 zv&S?|+N@`a#^CMk6>8gXo!p`%xKV2xIi$fNgX`Hjsg2E5l(UmL8I2~5OK2304HRb8 zQP57_Y0Ai+86M?VV^nJ@;NE~&Rap!-vadsOQ~AD}vPLNpiyolqS5>T{@+K;h zLWdMNGlD^D(`ms>z6J`|vh~3fY(UgT$p=>dAff7&K2fHUQ8t zAvAboE5P3xy3VFLLdYjyuU(A>Y^ed!$TgO?_)~oPxw8#a6E{O&SnZ>sEAx1Bi(bP8 z6CsumbpY@vYq1CKA`(G?_WCE17M<8eYA5ybx{aNOk=p zh&zT5zn&vhtvKa(PE+d2SbKvx7C-B*7fGRGOb)S0U34o1j3k^LS|Af58^EEe8Dxaq z8+0~YjG}EHgv^?qnv><4l!n%^)Ek$u++dkVL&aWx({s`T*4w{Bdfm+jKBxO`@ZD)u z(ls@sN26riZO)%4!CFb9h^-7RN<+bZnFewJF1OXj{j`oN%uT(Vl7_@;2?AcC)I zL5ykEC%>EXdO(X21#eusakrOGGqmyY+JB-BPSVUK@q zrTAu(EzM1S@nY&h;i`R~JLeW<_e7^8Y$O_1L^+affJR)4p6*4*52snJeG&x&cGTcx zxrL~~6ZBwrS&K*Ec}=9QlfZy*s0tonDjzI+_yfGfj!l$pk+F&(*mxQ9&Sxz3wRs5- z`tC6Pu`EO!BZqNoPfU+X^tosxm(Y$^6PorVNhSKDpB!WNxiSQq(EZ{Wt909O^kT(@ z$T+G7Ze{yqRZCWN{nvi6W!*S5JOmOO;8@uIq4fKtutIdiTqXgRz z{1cf;((x=`)r@N_;OmmomBhW;alNN!HB)>q)5DTSOOU$-uc4>dpt@fRu46Z-LNgjd zv|#vLP}qhfuc{)ka^cxy^G!CoH>venct@Q<#$x@HjskVPid$Kx=Bks<(DH8Y6{+;` zwc;$I>dOX1yMX?v&o8RJiZmbDavi?(3>ZV_2g}0aTJNGEbBZuR50lL{g3|A!sk6!!C)rGKIqQy4y28#GgEs)MJq6Pz7)a7e-|f zI4|N0=k$9#W#&XPTb$ow*AlXBeBbfTROiJ~E^tpZU ze*V6Xl2jsnr9!PQ50JL#F3bxCvDC;p+PV3Bvo;6(`_SRu4| zg!sh$?6Lm6#RSMX_mWj?SnC>kIoB9PuaO20>NS?0$%97&*5PQ8YYb(Etf~iICQe6R zQ{tY!?0mKnvu{Lj!UyxEOdy_WA2`CF_e3^2eG6*g4?r%3;WAm#7TqBfB*HH=&;@X>sc~?X|`qWTkrp636&Bo@1 z^e)ag>{(zNmqOiWrDWY1B;Unh5Q~l?hV49zL8mLeP^JZ0;==u(*x6m^oJy6ioVXtO zf^{qBc+HCHOoD7<2IsP!%HqfS+ne{eKYnD7@Aj?5668Y6OL=+YeW3)AF4k51Eh#N~#71hPM?JWmI+ak(X+h!qDH9`$6ea?$Y#9 zFoWuR=%xO%&QB`;U!aQ_-tL|1%G>BI)qMVF2)=YESdUAN%{GGQ90^Tg#JFO_H{3?d8r17LV z;DTp5XubE2m5%w%?zHdb-~B;4?HI2dyQUcTRC1YiFOG+2rPP@Lr!JXV1sy=zKSx`@ zv)R33fH?rs82BI(%2h}yAJB5r5XWYV$g za;hJ8@Jl^KWedj*av9@wXJGfF;{>Q~-m=HR8e_jN6x?m+rJGG$&2RqBW7t#k&OWE_ zUCD$GVxWaKp+KrcZ72F;s1Q~6y<(TshzVGQayqGjxC*uv%Li}{J{q${Lo7UGMQb(issvW~A$ zDg68>^lFgo&Hdr^;H`x1(&K-LosvPI9|t6k-8q@A+SOisTuylH5$Ex7?L?CXPS#xppsYVy zIFxCHQygJm<1x_l zm~D7V>A8j%MIovL%x^1Vv??n$;6`bf2UNJp3{OdBM3mhxjhmlU&`%4XoP{-RImi$| zk|mAJQ1xPa)-toC% zR>oQ|r5TSALz1u|#bSMIM04&uG!rltuQRM>jb z#8Ia+(lV5R*`2T6h|1Piz1)3;Db=sc-f$hAEblsgL1F}aoUmE_*3TzN5pOrc!v`Ly z)j?+mEbuC)-bG1-j?&DQf{UTqAbEN8ePK|n@%|*KA(!4+b+x{fZt=}8-OW4LzZJiQ zvb^YHq)Deu5Sx1RYL*Z)VScI6>7#`5%5Q=3W36kC7;L$UvA~6KhFh%@rjo9b>%k!V zeYMtwu{}#qQ#Z|&?eyQJRNT1%&-4;QJG~w~ezVbdLz=P`gEELVxZ=0Rat6m5dlvhh z+Z)a=52BCsV4ShPfmsv@5JB;0;Ig^pkqqK>Dp6p5YtbU=2vRKbr%p(H{o_UP`$KlU z4ql4X<2z$)w@n83hF@_h&#!pL+5$<3mY&})b_hEu1#O2=L5Iecbo-duH$jhLx`|mX zLtLVi5bo^g;fIFUYEvhiUdUYm)KXGNzcVQDRS#`l$hK7lH+keG#+7im7%Re0hAcu} zo>xu|2D-f(uW?k5ar&SZCI1GcK3&dPOaU*VP-BQ)Ac@DZ5^`tI0I{}lA|$j-^=s_$ zL+^E4sxqsSF!P{K%g~TqE0~l#T%_4PER<(Pcm-i4%;9^r6t!}92Vd`#(&CqMRh5@l zgs1Z4+8OeR=Q{H#vb<%+Bo=1eOI@4Q$3ILvk$GNEmLDZly*%JnJ3&t>FaMlL-TwJ> zW$yc9Js3DSw2}6mwc>Z|?vm>lzX67%@f%*lS_^wBW9nfEow+cWsy&ONZ2s1*s9RE} zQ}d%-Ei9Vh1Xc|%KcdbBw>(XaEYJZW{lxL;wlo|AyeK{v#j|u&{BFpn$S}eco^^`} zS7txMNimRNX`&9>iDfayNtp7e47uWR5Z?%y_P~u!&()67(M~dYgzB2LASpqO5mM#V zqS?&{)+6s16C0a#`gLlMcFcyxDi|c~#pn%67_f#2fQ?`-(sW8unMQ+Li*f+rrc_dm zgQiaOsBW+*vNzL90Ua)1ngUmBtfnv$aZ;i+jHJ_T&EI&LOK9L=5*gdTIE;5lWQ4u< zrTC^FA8VZbW0R&rd{Fpg*oJcHV5tZAresiMUgyq$?wJ=tPg(r!T>rTpr~Oy3F_ud7Jbitys* zwG(T6?tZP?tdnGVAP5<3IfLc#jGCGiNzOK=*EJU2;6_(bsS3CDHnj9I>T`<5R;HE- zP|=Yp)x;wcXbgC$YT#HHOgtjW4ODlh61Nm-7z1I7G|)Xof*FuQHIEO6*Bir0aUx+b zYjO+^YyKfBO9eoz8I_XJ7(sS7O;EfKPHQa3ff255anPeSYW>=T8J3)eiB3bpt&-Y% zx*uPnr4I-ca6p6Obr0#XFkbXE$m|AI!8hI9z~kAjALmniRI+S1iB-iS?zaB9+TSnn zKq2gH|H+D=@tqqEGK42DI`(Qc*?z0)VyV#ZE%anyA*zSaB74LTFmGJuGoKCUr3cD{ z8@v~X-lruXMX5kSn8+pu=yp*2l#NfABBz+6%doy}#9RsgN~Dj;NHV~xA%$y5X=03e z$1M5cseh#5gku@>OwkwS8^z>qYME~Hyz8Q@@gghCbZtcOtu%W^%}7JT+S&SQJVrXM zB5|YGq_;&%t%`7aD;qof7^0}WzNRL98PBm%y2P1C4$StBnDlp%a14bAAQus<*JRUV zEX|vplTk_GZZjr?;BJnzNuj2hm8;}tsxhUUBC$X6f6h=iGuvuv7LeU%6)vag*9lXj zoJZ?XjJ2!BwR`Ln=&5bi6<#`O?U;usa4QGIjHSrF0) zPyqr#nDDTXdANCU%-*{(z$4vFQ;5z6fL{l2TM<2*g1)IRqkmWfho~gui1BGnj0cIw zo=_!}`k}_t%nGMcrQ;-w?G0N?6ANO?OR%m#H&NMu$J~Yv65r=LtjWrvgD!-eIjeP{ zYoaC;X=Xb-4KDgrN(3T?M~6aHbc5A4FeOTgIxH_ZmJ{AX3eE;q+lcqbM~&Qw72SM? z2K`8Z`vP#Ks==0Cc5}IB*zl)lk=SyT{DR155#De0tlFVA zEbubGZ(?JJas?mD4Uy9FVjy~$v>t{EHy~GGBGA{(O_k=h{-w>qGftBrEi{cmgv)5nZxF3)mE+HDFs!j~ zY1M}bG58T~44&P`#br!IRlyZ7op~IRhKfy1=JsQ`6Pn;m&}%jP$`*^NRQU#trDUC2 z{!DHHoK{loSiFU-c$zX&L#j&b6mEJ+X0jDirq;KEaI|uFibxwYBXqRvX@*K1HmWcZ zS0_`KcO(x@d$_6O9^NGpc}oU&i_nX2u4dFz71+%k^=#J4u2xXP_bc~C@Un&z^6UP7 zo_&r93W*7&x+dqSGA8gb7bkCVSQP|1Iu(9>@j0z$XBs~nx^BoKYmg~A-E8u_iB!Xw z<$R7w=2h#DsgAtty%`p|8jNWnlO>TKj_BR66fsWRkgdVFn=tv5RdCN1MSgq)Eg6j% zEz4@AMGr=U(Jvg*KT+L62hW7?KGBb30FN$==*H96KWW_Sl9Xv?q0iWR6fXvBj9n!U zUI=Abv9K|+M*FR%IMr#lm?DX1v1S_@6g3aYS8QDIs1~`hRR}4QFwK-&^_U2n9GWsXn4u~QCKrmu|M|No4prj zxoA2mV*5Km#QeVfIRakn7y0vP4=ys4&|QuEUdPETg*Ws0;lgndZY22+0~uW2|pv$K$HU(1O^>C zJFtEnIbjp=2-T3jM$RaCOJbC9xY^vq)88j9P)3%KO{=g;^4@MmxNJS^#{C@n_2-rA zPw`dlCPriRx0!uxUYaugT6fV(o!1qw>H^3OD12Vn|nzeeap{K`85oDQJJd_ zNmx#ocq0=NnX_{?(Z@H;f4*UkbGk6b4wd-^xKoH(-!*BsU^4t{A3&qOf*T7= zXfPfzAy7=QAIidAbmbl+;HIe~KSixzjfkSUHslu^8Ovqlt3?ws>Ir5!Sr#S?TmEp- z1b!5_`|Lg+%BSFP&0>F+@Jtl^ep*~{-yv9y(269>MzF^7OxlO6e_E03SnWnYKNdQ@ zmDLktWs7T~6oD}P+PB|`hHiUqQ$CgXe51GM%xq05D6sn@$AxNFtd z4ZpCywy}|$Rn=+u9O>i!>F}dnV55AsM|#ViIiYPW_b`%HNe?Z)wU_}P&xAn8OX-^+3{SN&yh9x+2Gq}Nev<9KkvlvCm%iBJ2H8*?tL&TAL_43 zxYfJnOX<~FUlh{4nd3M{8__$y@_O9=_SFH3gmn?7h5B$!AshaF? zdohtonP=h|{V&VE6t~B-Ij%nVu)nH*>YDZ*T`=aCx1IE-?-Hor!+l)c18EINYSsko zH9WOBVo~6Rmp+HQpv}9kqn{S7?R@VgLj!_NJ9$Db)@a+4 zlilCvioLwpk`XI^{&C$RF!Rn6&l~3r_dA0q*1LDoc6AE;wO?<@K7J|tKD(ClRJ9`@ z>G6SMeC-E2^IWjuM>s}4Mc3L~E>z=?9Ujxza5Teo_8H@~mGY!yPsNV)r8onzw5Ha! zSWFR}18OtD-{{*@iR$3$*yxz$47+}fKD}nw4{rU+XIk-ste5c>p2yZt5;{g5EPsaQ z>@g&~JI*e>eHI{t_{b^Q{{EO2ZdkI6N%(?zuJxTYYLf2DVS&Uhxh(oG;#z@l=3q_A z>=Y4vEkdNMt>DDqH~zt`&-C{l$`1#AeYsUHyIJ4}SP$Ng9R)Wl>&_}Xbrdd^o$~o6 zl2QBiX(A`AB z41MTbLD2v+{N`R$t)^mVn0mzz6bC?RG>$e%PjQG&q_1H_|MqemTG(OwvVHsbo1oK? zZ-q#}mQ+SC`@vD=>hotMD#}r-3R8mIuABD3Gh+{CrXFmq2ONKlS$6!;p8dq4OIz=W zP@w;l;4Gn&Xp61P+2x# fb3V#KpEX=3b^wV^8M6X6Zo3o-Z!`zwFR}g)Ul_M9 literal 0 HcmV?d00001 diff --git a/assets/sfx/splat7.ogg b/assets/sfx/splat7.ogg new file mode 100644 index 0000000000000000000000000000000000000000..ea51d22a1577daac61040e8e2288c4c756370783 GIT binary patch literal 17488 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 T{>NzyXcB?))^{)ng!X>`+bb{{ literal 0 HcmV?d00001 diff --git a/assets/sfx/splat8.ogg b/assets/sfx/splat8.ogg new file mode 100644 index 0000000000000000000000000000000000000000..c23fdd8f621178ad7a018f035a3441436cb41093 GIT binary patch literal 19586 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 UHmLrdwNe2&0gzMWel`aH4lF6iPXGV_ literal 0 HcmV?d00001 diff --git a/src/PyTexture.cpp b/src/PyTexture.cpp index eb4bfad..83a9dcb 100644 --- a/src/PyTexture.cpp +++ b/src/PyTexture.cpp @@ -28,7 +28,6 @@ sf::Sprite PyTexture::sprite(int index, sf::Vector2f pos, sf::Vector2f s) PyObject* PyTexture::pyObject() { - std::cout << "Find type" << std::endl; auto type = (PyTypeObject*)PyObject_GetAttrString(McRFPy_API::mcrf_module, "Texture"); PyObject* obj = PyTexture::pynew(type, Py_None, Py_None); diff --git a/src/UICaption.cpp b/src/UICaption.cpp index d960c25..539ec38 100644 --- a/src/UICaption.cpp +++ b/src/UICaption.cpp @@ -249,7 +249,7 @@ int UICaption::init(PyUICaptionObject* self, PyObject* args, PyObject* kwds) self->data->text.setPosition(pos_result->data); // check types for font, fill_color, outline_color - std::cout << PyUnicode_AsUTF8(PyObject_Repr(font)) << std::endl; + //std::cout << PyUnicode_AsUTF8(PyObject_Repr(font)) << std::endl; if (font != NULL && !PyObject_IsInstance(font, PyObject_GetAttrString(McRFPy_API::mcrf_module, "Font")/*(PyObject*)&PyFontType)*/)){ PyErr_SetString(PyExc_TypeError, "font must be a mcrfpy.Font instance"); return -1; diff --git a/src/scripts/cos_entities.py b/src/scripts/cos_entities.py index ed916f7..0643c00 100644 --- a/src/scripts/cos_entities.py +++ b/src/scripts/cos_entities.py @@ -1,4 +1,5 @@ import mcrfpy +import random #t = mcrfpy.Texture("assets/kenney_tinydungeon.png", 16, 16) t = mcrfpy.Texture("assets/kenney_TD_MR_IP.png", 16, 16) #def iterable_entities(grid): @@ -37,7 +38,7 @@ class COSEntity(): #mcrfpy.Entity): # Fake mcrfpy.Entity integration; engine bu self._entity.sprite_number = value def __repr__(self): - return f"" + return f"<{self.__class__.__name__} ({self.draw_pos})>" def die(self): # ugly workaround! grid.entities isn't really iterable (segfaults) @@ -69,7 +70,9 @@ class COSEntity(): #mcrfpy.Entity): # Fake mcrfpy.Entity integration; engine bu for e in self.game.entities: if e is self: continue if e.draw_pos == (tx, ty): e.ev_enter(self) - + + def act(self): + pass def ev_enter(self, other): pass @@ -106,11 +109,92 @@ class COSEntity(): #mcrfpy.Entity): # Fake mcrfpy.Entity integration; engine bu #self.draw_pos = (tx, ty) self.do_move(tx, ty) +class Equippable: + def __init__(self, hands = 0, hp_healing = 0, damage = 0, defense = 0, zap_damage = 1, zap_cooldown = 10, sprite = 129): + self.hands = hands + self.hp_healing = hp_healing + self.damage = damage + self.defense = defense + self.zap_damage = zap_damage + self.zap_cooldown = zap_cooldown + self.zap_cooldown_remaining = 0 + self.sprite = self.sprite + self.quality = 0 + + def tick(self): + if self.zap_cooldown_remaining: + self.zap_cooldown_remaining -= 1 + if self.zap_cooldown_remaining < 0: self.zap_cooldown_remaining = 0 + + def __repr__(self): + cooldown_str = f'({self.zap_cooldown_remaining} rounds until ready)' + return f"" + + def classify(self): + categories = [] + if self.hands==0: + categories.append("consumable") + elif self.damage > 0: + categories.append(f"{self.hands}-handed weapon") + elif self.defense > 0: + categories.append(f"defense") + elif self.zap_damage > 0: + categories.append("{self.hands}-handed magic weapon") + if len(categories) == 0: + return "unclassifiable" + elif len(categories) == 1: + return categories[0] + else: + return "Erratic: " + ', '.join(categories) + + #def compare(self, other): + # my_class = self.classify() + # o_class = other.classify() + # if my_class == "unclassifiable" or o_class == "unclassifiable": + # return None + # if my_class == "consumable": + # return other.hp_healing - self.hp_healing + + class PlayerEntity(COSEntity): def __init__(self, *, game): #print(f"spawn at origin") self.draw_order = 10 super().__init__(game.grid, 0, 0, sprite_num=84, game=game) + self.hp = 10 + self.max_hp = 10 + self.base_damage = 1 + self.base_defense = 0 + self.luck = 0 + self.archetype = None + self.equipped = [] + self.inventory = [] + + def tick(self): + for i in self.equipped: + i.tick() + + def calc_damage(self): + dmg = self.base_damage + for i in self.equipped: + dmg += i.damage + return dmg + + def calc_defense(self): + defense = self.base_defense + for i in self.equipped: + defense += i.damage + return defense + + def do_zap(self): + pass + + def bump(self, other, dx, dy, test=False): + if type(other) == BoulderEntity: + print("Boulder hit w/ knockback!") + return self.game.pull_boulder_move((-dx, -dy), other) + print(f"oof, ouch, {other} bumped the player - {other.base_damage} damage from {other}") + self.hp = max(self.hp - max(other.base_damage - self.calc_defense(), 0), 0) def respawn(self, avoid=None): # find spawn point @@ -142,6 +226,8 @@ class BoulderEntity(COSEntity): if type(other) == BoulderEntity: #print("Boulders can't push boulders") return False + elif type(other) == EnemyEntity: + if not other.can_push: return False #tx, ty = int(self.e.position[0] + dx), int(self.e.position[1] + dy) tx, ty = int(self.draw_pos[0] + dx), int(self.draw_pos[1] + dy) # Is the boulder blocked the same direction as the bumper? If not, let's both move @@ -155,7 +241,7 @@ class BoulderEntity(COSEntity): class ButtonEntity(COSEntity): def __init__(self, x, y, exit_entity, *, game): self.draw_order = 1 - super().__init__(game.grid, x, y, 42, game=game) + super().__init__(game.grid, x, y, 250, game=game) self.exit = exit_entity def ev_enter(self, other): @@ -171,7 +257,8 @@ class ButtonEntity(COSEntity): # self.exit.unlock() # TODO: unlock, and then lock again, when player steps on/off if not test: - other._relative_move(dx, dy) + pos = int(self.draw_pos[0]), int(self.draw_pos[1]) + other.do_move(*pos) return True class ExitEntity(COSEntity): @@ -199,5 +286,108 @@ class ExitEntity(COSEntity): other._relative_move(dx, dy) #TODO - player go down a level logic if type(other) == PlayerEntity: - self.game.create_level(self.game.depth + 1) + self.game.depth += 1 + print(f"welcome to level {self.game.depth}") + self.game.create_level(self.game.depth) self.game.swap_level(self.game.level, self.game.spawn_point) + +class EnemyEntity(COSEntity): + def __init__(self, x, y, hp=2, base_damage=1, base_defense=0, sprite=123, can_push=False, crushable=True, sight=8, move_cooldown=1, *, game): + self.draw_order = 7 + super().__init__(game.grid, x, y, sprite, game=game) + self.hp = hp + self.base_damage = base_damage + self.base_defense = base_defense + self.base_sprite = sprite + self.can_push = can_push + self.crushable = crushable + self.sight = sight + self.move_cooldown = move_cooldown + self.moved_last = 0 + + def bump(self, other, dx, dy, test=False): + if self.hp == 0: + if not test: + old_pos = int(self.draw_pos[0]), int(self.draw_pos[1]) + other.do_move(*old_pos) + return True + if type(other) == PlayerEntity: + # TODO - get damage from player, take damage, decide to die or not + d = other.calc_damage() + self.hp -= d + self.hp = max(self.hp, 0) + if self.hp == 0: + self._entity.sprite_number = self.base_sprite + 246 + self.draw_order = 1 + print(f"Player hit for {d}. HP = {self.hp}") + #self.hp = 0 + return False + elif type(other) == BoulderEntity: + if not self.crushable and self.hp > 0: + print("Uncrushable!") + return False + if self.hp > 0: + print("Ouch, my entire body!!") + self._entity.sprite_number = self.base_sprite + 246 + self.hp = 0 + old_pos = int(self.draw_pos[0]), int(self.draw_pos[1]) + if not test: + other.do_move(*old_pos) + return True + + def act(self): + if self.hp > 0: + # if player nearby: attack + x, y = self.draw_pos + px, py = self.game.player.draw_pos + for d in ((1, 0), (0, 1), (-1, 0), (1, 0)): + if int(x + d[0]) == int(px) and int(y + d[1]) == int(py): + self.try_move(*d) + return + + # slow movement (doesn't affect ability to attack) + if self.moved_last < 0: + self.moved_last -= 1 + return + else: + self.moved_last = self.move_cooldown + + # if player is not nearby, wander + if abs(x - px) + abs(y - py) > self.sight: + d = random.choice(((1, 0), (0, 1), (-1, 0), (1, 0))) + self.try_move(*d) + + # if can_push and player in a line: KICK + if self.can_push: + if int(x) == int(px): + pass # vertical kick + elif int(y) == int(py): + pass # horizontal kick + + # else, nearby pursue + towards = [] + dist = lambda dx, dy: abs(px - (x + dx)) + abs(py - (y + dy)) + current_dist = dist(0, 0) + for d in ((1, 0), (0, 1), (-1, 0), (1, 0)): + if dist(*d) <= current_dist + 0.75: towards.append(d) + print(current_dist, towards) + target_dir = random.choice(towards) + self.try_move(*target_dir) + + +class TreasureEntity(COSEntity): + def __init__(self, x, y, treasure_table=None, *, game): + self.draw_order = 6 + super().__init__(game.grid, x, y, 89, game=game) + self.popped = False + + def bump(self, other, dx, dy, test=False): + if type(other) != PlayerEntity: + return False + if self.popped: + print("It's already open.") + return + print("Take me, I'm yours!") + self._entity.sprite_number = 91 + self.popped = True + diff --git a/src/scripts/cos_level.py b/src/scripts/cos_level.py index 32392b0..b7509b9 100644 --- a/src/scripts/cos_level.py +++ b/src/scripts/cos_level.py @@ -25,6 +25,10 @@ class BinaryRoomNode: def __repr__(self): return f"" + def center(self): + x, y, w, h = self.data + return (x + w // 2, y + h // 2) + def split(self): new_data = binary_space_partition(*self.data) self.left = BinaryRoomNode(new_data[0]) @@ -35,6 +39,11 @@ class BinaryRoomNode: return self.left.walk() + self.right.walk() return [self] + def contains(self, pt): + x, y, w, h = self.data + tx, ty = pt + return x <= tx <= x + w and y <= ty <= y + h + class RoomGraph: def __init__(self, xywh): self.root = BinaryRoomNode(xywh) @@ -49,6 +58,7 @@ class RoomGraph: def room_coord(room, margin=0): x, y, w, h = room.data + #print(x,y,w,h, f'{margin=}', end=';') w -= 1 h -= 1 margin += 1 @@ -58,10 +68,37 @@ def room_coord(room, margin=0): h -= margin if w < 0: w = 0 if h < 0: h = 0 + #print(x,y,w,h, end=' -> ') tx = x if w==0 else random.randint(x, x+w) ty = y if h==0 else random.randint(y, y+h) + #print((tx, ty)) return (tx, ty) +def adjacent_rooms(r, rooms): + x, y, w, h = r.data + adjacents = {} + + for i, other_r in enumerate(rooms): + rx, ry, rw, rh = other_r.data + if (rx, ry, rw, rh) == r: + continue # Skip self + + # Check vertical adjacency (above or below) + if rx < x + w and x < rx + rw: # Overlapping width + if ry + rh == y: # Above + adjacents[i] = (x + w // 2, y - 1) + elif y + h == ry: # Below + adjacents[i] = (x + w // 2, y + h + 1) + + # Check horizontal adjacency (left or right) + if ry < y + h and y < ry + rh: # Overlapping height + if rx + rw == x: # Left + adjacents[i] = (x - 1, y + h // 2) + elif x + w == rx: # Right + adjacents[i] = (x + w + 1, y + h // 2) + + return adjacents + class Level: def __init__(self, width, height): self.width = width @@ -70,6 +107,7 @@ class Level: self.graph = RoomGraph( (0, 0, width, height) ) self.grid = mcrfpy.Grid(width, height, t, (10, 10), (1014, 758)) self.highlighted = -1 #debug view feature + self.walled_rooms = [] # for tracking "hallway rooms" vs "walled rooms" def fill(self, xywh, highlight = False): if highlight: @@ -84,7 +122,7 @@ class Level: def highlight(self, delta): rooms = self.graph.walk() if self.highlighted < len(rooms): - print(f"reset {self.highlighted}") + #print(f"reset {self.highlighted}") self.fill(rooms[self.highlighted].data) # reset self.highlighted += delta print(f"highlight {self.highlighted}") @@ -110,7 +148,7 @@ class Level: def fill_rooms(self, features=None): rooms = self.graph.walk() - print(f"rooms: {len(rooms)}") + #print(f"rooms: {len(rooms)}") for i, g in enumerate(rooms): X, Y, W, H = g.data #c = [random.randint(0, 255) for _ in range(3)] @@ -120,9 +158,14 @@ class Level: self.grid.at((x, y)).tilesprite = ts def wall_rooms(self): + self.walled_rooms = [] rooms = self.graph.walk() - for g in rooms: - #if random.random() > 0.66: continue + for i, g in enumerate(rooms): + # unwalled / hallways: not selected for small dungeons, first, last, and 65% of all other rooms + if len(rooms) > 3 and i > 1 and i < len(rooms) - 2 and random.random() < 0.35: + self.walled_rooms.append(False) + continue + self.walled_rooms.append(True) X, Y, W, H = g.data for x in range(X, X+W): self.grid.at((x, Y)).walkable = False @@ -138,13 +181,45 @@ class Level: # self.grid.at((0, y)).walkable = False self.grid.at((self.width-1, y)).walkable = False - def generate(self, target_rooms = 5, features=None): - if features is None: - shuffled = ["boulder", "button"] - random.shuffle(shuffled) - features = ["spawn"] + shuffled + ["exit", "treasure"] - # Binary space partition to reach given # of rooms + def dig_path(self, start:"Tuple[int, int]", end:"Tuple[int, int]", walkable=True, color=None, sprite=None): + print(f"Digging: {start} -> {end}") + # get x1,y1 and x2,y2 coordinates: top left and bottom right points on the rect formed by two random points, one from each of the 2 rooms + x1 = min([start[0], end[0]]) + x2 = max([start[0], end[0]]) + dw = x2 - x1 + y1 = min([start[1], end[1]]) + y2 = max([start[1], end[1]]) + dh = y2 - y1 + + # random: top left or bottom right as the corner between the paths + tx, ty = (x1, y1) if random.random() >= 0.5 else (x2, y2) + + for x in range(x1, x1+dw): + try: + if walkable: + self.grid.at((x, ty)).walkable = walkable + if color: + self.grid.at((x, ty)).color = color + if sprite is not None: + self.grid.at((x, ty)).tilesprite = sprite + except: + pass + for y in range(y1, y1+dh): + try: + if walkable: + self.grid.at((tx, y)).walkable = True + if color: + self.grid.at((tx, y)).color = color + if sprite is not None: + self.grid.at((tx, y)).tilesprite = sprite + except: + pass + + def generate(self, level_plan): #target_rooms = 5, features=None): self.reset() + target_rooms = len(level_plan) + if type(level_plan) is set: + level_plan = random.choice(list(level_plan)) while len(self.graph.walk()) < target_rooms: self.split(single=len(self.graph.walk()) > target_rooms * .5) @@ -152,44 +227,59 @@ class Level: #self.fill_rooms() self.wall_rooms() rooms = self.graph.walk() - feature_coords = {} + feature_coords = [] prev_room = None - for room in rooms: - if not features: break - f = features.pop(0) - feature_coords[f] = room_coord(room, margin=4 if f in ("boulder",) else 1) + print(level_plan) + for room_num, room in enumerate(rooms): + room_plan = level_plan[room_num] + if type(room_plan) == str: room_plan = [room_plan] # single item plans became single-character plans... + for f in room_plan: + #feature_coords.append((f, room_coord(room, margin=4 if f in ("boulder",) else 1))) + # boulders are breaking my brain. If I can't get boulders away from walls with margin, I'm just going to dig them out. + if f == "boulder": + x, y = room_coord(room, margin=0) + if x < 2: x += 1 + if y < 2: y += 1 + if x > self.grid.grid_size[0] - 2: x -= 1 + if y > self.grid.grid_size[1] - 2: y -= 1 + for _x in (1, 0, -1): + for _y in (1, 0, -1): + self.grid.at((x + _x, y + _y)).walkable = True + feature_coords.append((f, (x, y))) + else: + feature_coords.append((f, room_coord(room, margin=0))) + print(feature_coords[-1]) ## Hallway generation # plow an inelegant path if prev_room: start = room_coord(prev_room, margin=2) end = room_coord(room, margin=2) - # get x1,y1 and x2,y2 coordinates: top left and bottom right points on the rect formed by two random points, one from each of the 2 rooms - x1 = min([start[0], end[0]]) - x2 = max([start[0], end[0]]) - dw = x2 - x1 - y1 = min([start[1], end[1]]) - y2 = max([start[1], end[1]]) - dh = y2 - y1 - #print(x1, y1, x2, y2, dw, dh) - - # random: top left or bottom right as the corner between the paths - tx, ty = (x1, y1) if random.random() >= 0.5 else (x2, y2) - - for x in range(x1, x1+dw): - self.grid.at((x, ty)).walkable = True - #self.grid.at((x, ty)).color = (255, 0, 0) - #self.grid.at((x, ty)).tilesprite = -1 - for y in range(y1, y1+dh): - self.grid.at((tx, y)).walkable = True - #self.grid.at((tx, y)).color = (0, 255, 0) - #self.grid.at((tx, y)).tilesprite = -1 + self.dig_path(start, end, color=(0, 64, 0)) prev_room = room - # Tile painting possibilities = None while possibilities or possibilities is None: possibilities = ct.wfc_pass(self.grid, possibilities) + ## "hallway room" repainting + #for i, hall_room in enumerate(rooms): + # if self.walled_rooms[i]: + # print(f"walled room: {hall_room}") + # continue + # print(f"hall room: {hall_room}") + # x, y, w, h = hall_room.data + # for _x in range(x+1, x+w-1): + # for _y in range(y+1, y+h-1): + # self.grid.at((_x, _y)).walkable = False + # self.grid.at((_x, _y)).tilesprite = -1 + # self.grid.at((_x, _y)).color = (0, 0, 0) # pit! + # targets = adjacent_rooms(hall_room, rooms) + # print(targets) + # for k, v in targets.items(): + # self.dig_path(hall_room.center(), v, color=(64, 32, 32)) + # for _, p in feature_coords: + # if hall_room.contains(p): self.dig_path(hall_room.center(), p, color=(92, 48, 48)) + return feature_coords diff --git a/src/scripts/cos_tiles.py b/src/scripts/cos_tiles.py index d7cb57b..4b80785 100644 --- a/src/scripts/cos_tiles.py +++ b/src/scripts/cos_tiles.py @@ -129,7 +129,7 @@ def wfc_pass(grid, possibilities=None): for v in possibilities.values(): if len(v) in counts: counts[len(v)] += 1 else: counts[len(v)] = 1 - print(counts) + #print(counts) return possibilities elif len(possibilities) == 0: print("We're done!") diff --git a/src/scripts/game.py b/src/scripts/game.py index b6ce058..6b7fab5 100644 --- a/src/scripts/game.py +++ b/src/scripts/game.py @@ -1,6 +1,7 @@ import mcrfpy #t = mcrfpy.Texture("assets/kenney_tinydungeon.png", 16, 16) # 12, 11) -#t = mcrfpy.Texture("assets/kenney_TD_MR_IP.png", 16, 16) # 12, 11) +t = mcrfpy.Texture("assets/kenney_TD_MR_IP.png", 16, 16) # 12, 11) +btn_tex = mcrfpy.Texture("assets/48px_ui_icons-KenneyNL.png", 48, 48) font = mcrfpy.Font("assets/JetbrainsMono.ttf") frame_color = (64, 64, 128) @@ -10,12 +11,36 @@ import cos_entities as ce import cos_level as cl #import cos_tiles as ct +class Resources: + def __init__(self): + self.music_enabled = True + self.music_volume = 40 + self.sfx_enabled = True + self.sfx_volume = 100 + self.master_volume = 100 + + # load the music/sfx files here + self.splats = [] + for i in range(1, 10): + mcrfpy.createSoundBuffer(f"assets/sfx/splat{i}.ogg") + + + def play_sfx(self, sfx_id): + if self.sfx_enabled and self.sfx_volume and self.master_volume: + mcrfpy.setSoundVolume(self.master_volume/100 * self.sfx_volume) + mcrfpy.playSound(sfx_id) + + def play_music(self, track_id): + if self.music_enabled and self.music_volume and self.master_volume: + mcrfpy.setMusicVolume(self.master_volume/100 * self.music_volume) + mcrfpy.playMusic(...) + +resources = Resources() + class Crypt: def __init__(self): mcrfpy.createScene("play") self.ui = mcrfpy.sceneUI("play") - mcrfpy.setScene("play") - mcrfpy.keypressScene(self.cos_keys) entity_frame = mcrfpy.Frame(815, 10, 194, 595, fill_color = frame_color) inventory_frame = mcrfpy.Frame(10, 610, 800, 143, fill_color = frame_color) @@ -24,9 +49,66 @@ class Crypt: #self.level = cl.Level(30, 23) self.entities = [] self.depth=1 + self.stuck_btn = SweetButton(self.ui, (810, 700), "Stuck", icon=19, box_width=150, box_height = 60, click=self.stuck) + + self.level_plan = { + 1: [("spawn", "button", "boulder"), ("exit")], + 2: [("spawn", "button", "boulder"), ("rat"), ("exit")], + 3: [("spawn", "button", "boulder"), ("rat"), ("exit")], + 4: [("spawn", "button", "rat"), ("boulder", "rat", "treasure"), ("exit")], + 5: [("spawn", "button", "rat"), ("boulder", "rat"), ("exit")], + 6: {(("spawn", "button"), ("boulder", "treasure", "exit")), + (("spawn", "boulder"), ("button", "treasure", "exit"))}, + 7: {(("spawn", "button"), ("boulder", "treasure", "exit")), + (("spawn", "boulder"), ("button", "treasure", "exit"))}, + 8: {(("spawn", "treasure", "button"), ("boulder", "treasure", "exit")), + (("spawn", "treasure", "boulder"), ("button", "treasure", "exit"))} + #9: self.lv_planner + } + + # empty void for the player to initialize into + self.headsup = mcrfpy.Frame(10, 684, 320, 64, fill_color = (0, 0, 0, 0)) + self.sidebar = mcrfpy.Frame(860, 4, 160, 600, fill_color = (96, 96, 160)) + + # Heads Up (health bar, armor bar) config + self.health_bar = [mcrfpy.Sprite(32*i, 2, t, 659, 2) for i in range(10)] + [self.headsup.children.append(i) for i in self.health_bar] + self.armor_bar = [mcrfpy.Sprite(32*i, 42, t, 659, 2) for i in range(10)] + [self.headsup.children.append(i) for i in self.armor_bar] + # (40, 3), caption, font, fill_color=font_color + self.stat_captions = mcrfpy.Caption((325,0), "HP:10\nDef:0(+0)", font, fill_color=(255, 255, 255)) + self.stat_captions.outline = 3 + self.stat_captions.outline_color = (0, 0, 0) + self.headsup.children.append(self.stat_captions) + + # Side Bar (inventory, level info) config + self.level_caption = mcrfpy.Caption((5,5), "Level: 1", font, fill_color=(255, 255, 255)) + self.level_caption.size = 26 + self.level_caption.outline = 3 + self.level_caption.outline_color = (0, 0, 0) + self.sidebar.children.append(self.level_caption) + self.inv_sprites = [mcrfpy.Sprite(15, 70 + 95*i, t, 659, 6.0) for i in range(5)] + for i in self.inv_sprites: + self.sidebar.children.append(i) + self.key_captions = [ + mcrfpy.Sprite(75, 130 + (95*2) + 95 * i, t, 384 + i, 3.0) for i in range(3) + ] + for i in self.key_captions: + self.sidebar.children.append(i) + self.inv_captions = [ + mcrfpy.Caption((25, 130 + 95 * i), "x", font, fill_color=(255, 255, 255)) for i in range(5) + ] + for i in self.inv_captions: + self.sidebar.children.append(i) + + liminal_void = mcrfpy.Grid(1, 1, t, (0, 0), (16, 16)) + self.grid = liminal_void + self.player = ce.PlayerEntity(game=self) + self.spawn_point = (0, 0) + + # level creation moves player to the game level at the generated spawn point self.create_level(self.depth) #self.grid = mcrfpy.Grid(20, 15, t, (10, 10), (1014, 758)) - self.player = ce.PlayerEntity(game=self) self.swap_level(self.level, self.spawn_point) # Test Entities @@ -35,10 +117,146 @@ class Crypt: #ce.ExitEntity(12, 6, 14, 4, game=self) # scene setup - - [self.ui.append(e) for e in (self.grid,)] # entity_frame, inventory_frame, stats_frame)] + ## might be done by self.swap_level + #[self.ui.append(e) for e in (self.grid, self.stuck_btn.base_frame)] # entity_frame, inventory_frame, stats_frame)] self.possibilities = None # track WFC possibilities between rounds + self.enemies = [] + #mcrfpy.setTimer("enemy_test", self.enemy_movement, 750) + + #mcrfpy.Frame(x, y, box_width+shadow_offset, box_height, fill_color = (0, 0, 0, 255)) + #Sprite(0, 3, btn_tex, icon, icon_scale) + + #def enemy_movement(self, *args): + # for e in self.enemies: e.act() + + #def spawn_test_rat(self): + # success = False + # while not success: + # x, y = [random.randint(0, i-1) for i in self.grid.grid_size] + # success = self.grid.at((x,y)).walkable + # self.enemies.append(ce.EnemyEntity(x, y, game=self)) + + def gui_update(self): + self.stat_captions.text = f"HP:{self.player.hp}\nDef:{self.player.calc_defense()}(+{self.player.calc_defense() - self.player.base_defense})" + for i, hs in enumerate(self.health_bar): + full_hearts = self.player.hp - (i*2) + empty_hearts = self.player.max_hp - (i*2) + hs.sprite_number = 659 + if empty_hearts >= 2: + hs.sprite_number = 208 + if full_hearts >= 2: + hs.sprite_number = 210 + elif full_hearts == 1: + hs.sprite_number = 209 + for i, arm_s in enumerate(self.armor_bar): + full_hearts = self.player.calc_defense() - (i*2) + arm_s.sprite_number = 659 + if full_hearts >= 2: + arm_s.sprite_number = 211 + elif full_hearts == 1: + arm_s.sprite_number = 212 + + #items = self.player.equipped[:] + self.player.inventory[:] + for i in range(5): + if i == 0: + item = self.player.equipped[0] if len(self.player.equipped) > 0 else None + elif i == 1: + item = self.player.equipped[1] if len(self.player.equipped) > 1 else None + elif i == 2: + item = self.player.inventory[0] if len(self.player.inventory) > 0 else None + elif i == 3: + item = self.player.inventory[1] if len(self.player.inventory) > 1 else None + elif i == 4: + item = self.player.inventory[2] if len(self.player.inventory) > 2 else None + if item is None: + self.inv_sprites[i].sprite_number = 659 + if i > 1: self.key_captions[i - 2].sprite_number = 659 + self.inv_captions[i].text = "" + continue + self.inv_sprites[i].sprite_number = item.sprite + if i > 1: + self.key_captions[i - 2].sprite_number = 384 + (i - 2) + self.inv_captions[i].text = "Blah" + + def lv_planner(self, target_level): + """Plan room sequence in levels > 9""" + monsters = (target_level - 6) // 2 + target_rooms = min(int(target_level // 2), 6) + target_treasure = min(int(target_level // 3), 4) + rooms = [] + for i in range(target_rooms): + rooms.append([]) + for o in ("spawn", "boulder", "button", "exit"): + r = random.randint(0, target_rooms-1) + rooms[r].append(o) + monster_table = { + "rat": int(monsters * 0.8) + 2, + "big rat": max(int(monsters * 0.2) - 2, 0), + "cyclops": max(int(monsters * 0.1) - 3, 0) + } + monster_table = {k: v for k, v in monster_table.items() if v > 0} + monster_names = list(monster_table.keys()) + monster_weights = [monster_table[k] for k in monster_names] + for m in range(monsters): + r = random.randint(0, target_rooms - 1) + rooms[r].append(random.choices(monster_names, weights = monster_weights)[0]) + + for t in range(target_treasure): + r = random.randint(0, target_rooms - 1) + rooms[r].append("treasure") + + return rooms + + def treasure_planner(self, treasure_level): + """Plan treasure contents at all levels""" + item_minlv = { + "buckler": 1, + "shield": 2, + "sword": 1, + "sword2": 2, + "sword3": 5, + "axe": 1, + "axe2": 2, + "axe3": 5, + "wand": 1, + "staff": 2, + "staff2": 5, + "red_pot": 3, + "blue_pot": 6, + "green_pot": 6, + "grey_pot": 6, + "sm_grey_pot": 1 + } + base_wts = { + ("buckler", "shield"): 0.25, # defensive items + ("sword", "sword2", "axe", "axe2"): 0.4, #1h weapons + ("sword3", "axe3"): 0.25, #2h weapons + ("wand", "staff", "staff2"): 0.15, #magic weapons + ("red_pot",): 0.25, #health + ("blue_pot", "green_pot", "grey_pot", "sm_grey_pot"): 0.2 #stat upgrade potions + } + + # find item name in base_wts key (base weight of the category) + base_weight = lambda s: base_wts[list([t for t in base_wts.keys() if s in t])[0]] + weights = {d[0]: base_weight(d[0]) for d in item_minlv.items() if treasure_level > d[1]} + if self.player.archetype is None: + prefs = [] + elif self.player.archetype == "viking": + prefs = ["axe2", "axe3", "green_pot"] + elif self.player.archetype == "knight": + prefs = ["sword2", "shield", "grey_pot"] + elif self.player.archetype == "wizard": + prefs = ["staff", "staff2", "blue_pot"] + for i in prefs: + if i in weights: weights[i] *= 3 + + return weights + + def start(self): + resources.play_sfx(1) + mcrfpy.setScene("play") + mcrfpy.keypressScene(self.cos_keys) def add_entity(self, e:ce.COSEntity): self.entities.append(e) @@ -49,22 +267,52 @@ class Crypt: for e in self.entities: self.grid.entities.append(e._entity) - def create_level(self, depth): + def create_level(self, depth, _luck = 0): #if depth < 3: # features = None - self.level = cl.Level(30, 23) + self.level = cl.Level(20, 20) self.grid = self.level.grid - coords = self.level.generate() + if depth in self.level_plan: + plan = self.level_plan[depth] + else: + plan = self.lv_planner(depth) + coords = self.level.generate(plan) self.entities = [] - for k, v in coords.items(): + if self.player: + luck = self.player.luck + else: + luck = 0 + buttons = [] + for k, v in sorted(coords, key=lambda i: i[0]): # "button" before "exit"; "button", "button", "door", "exit" -> alphabetical is correct sequence if k == "spawn": - self.spawn_point = v + if self.player: + self.add_entity(self.player) + #self.player.draw_pos = v + self.spawn_point = v elif k == "boulder": ce.BoulderEntity(v[0], v[1], game=self) + elif k == "treasure": + ce.TreasureEntity(v[0], v[1], treasure_table = self.treasure_planner(depth + luck), game=self) elif k == "button": - pass + buttons.append(v) elif k == "exit": - ce.ExitEntity(v[0], v[1], coords["button"][0], coords["button"][1], game=self) + btn = buttons.pop(0) + ce.ExitEntity(v[0], v[1], btn[0], btn[1], game=self) + elif k == "rat": + ce.EnemyEntity(*v, game=self) + elif k == "big rat": + ce.EnemyEntity(*v, game=self, base_damage=2, hp=4, sprite=130) + elif k == "cyclops": + ce.EnemyEntity(*v, game=self, base_damage=3, hp=8, sprite=109, base_defense=2) + + #if self.depth > 2: + #for i in range(10): + # self.spawn_test_rat() + + def stuck(self, sweet_btn, args): + if args[3] == "end": return + self.create_level(self.depth) + self.swap_level(self.level, self.spawn_point) def cos_keys(self, key, state): d = None @@ -73,37 +321,286 @@ class Crypt: elif key == "A": d = (-1, 0) elif key == "S": d = (0, 1) elif key == "D": d = (1, 0) - elif key == "M": self.level.generate() - elif key == "R": - self.level.reset() - self.possibilities = None - elif key == "T": - self.level.split() - self.possibilities = None - elif key == "Y": self.level.split(single=True) - elif key == "U": self.level.highlight(+1) - elif key == "I": self.level.highlight(-1) - elif key == "O": - self.level.wall_rooms() - self.possibilities = None + #elif key == "M": self.level.generate() + #elif key == "R": + # self.level.reset() + # self.possibilities = None + #elif key == "T": + # self.level.split() + # self.possibilities = None + #elif key == "Y": self.level.split(single=True) + #elif key == "U": self.level.highlight(+1) + #elif key == "I": self.level.highlight(-1) + #elif key == "O": + # self.level.wall_rooms() + # self.possibilities = None #elif key == "P": ct.format_tiles(self.grid) + #elif key == "P": + #self.possibilities = ct.wfc_pass(self.grid, self.possibilities) elif key == "P": - self.possibilities = ct.wfc_pass(self.grid, self.possibilities) - if d: self.player.try_move(*d) + self.depth += 1 + print(f"Descending: lv {self.depth}") + self.stuck(None, [1,2,3,4]) + elif key == "Period": + self.enemy_turn() + elif key == "X": + self.pull_boulder_search() + #else: + # print(key) + if d: + self.entities.sort(key = lambda e: e.draw_order, reverse=False) + self.player.try_move(*d) + self.enemy_turn() + + def enemy_turn(self): + self.entities.sort(key = lambda e: e.draw_order, reverse=False) + for e in self.entities: + e.act() + self.gui_update() + + def pull_boulder_search(self): + for dx, dy in ( (0, -1), (-1, 0), (1, 0), (0, 1) ): + for e in self.entities: + if e.draw_pos != (self.player.draw_pos[0] + dx, self.player.draw_pos[1] + dy): continue + if type(e) == ce.BoulderEntity: + self.pull_boulder_move((dx, dy), e) + return self.enemy_turn() + else: + print("No boulder found to pull.") + + def pull_boulder_move(self, p, target_boulder): + print(p, target_boulder) + self.entities.sort(key = lambda e: e.draw_order, reverse=False) + if self.player.try_move(-p[0], -p[1], test=True): + old_pos = self.player.draw_pos + self.player.try_move(-p[0], -p[1]) + target_boulder.do_move(*old_pos) def swap_level(self, new_level, spawn_point): self.level = new_level self.grid = self.level.grid self.grid.zoom = 2.0 # TODO, make an entity mover function - self.add_entity(self.player) + #self.add_entity(self.player) self.player.grid = self.grid self.player.draw_pos = spawn_point - self.grid.entities.append(self.player._entity) - try: - self.ui.remove(0) - except: - pass - self.ui.append(self.grid) + #self.grid.entities.append(self.player._entity) -crypt = Crypt() + # reform UI (workaround to ui collection iterators crashing) + while len(self.ui) > 0: + try: + self.ui.remove(0) + except: + pass + self.ui.append(self.grid) + self.ui.append(self.stuck_btn.base_frame) + self.ui.append(self.headsup) + + self.level_caption.text = f"Level: {self.depth}" + self.ui.append(self.sidebar) + self.gui_update() + +class SweetButton: + def __init__(self, ui:mcrfpy.UICollection, + pos:"Tuple[int, int]", + caption:str, font=font, font_size=24, font_color=(255,255,255), font_outline_color=(0, 0, 0), font_outline_width=2, + shadow_offset = 8, box_width=200, box_height = 80, shadow_color=(64, 64, 86), box_color=(96, 96, 160), + icon=4, icon_scale=1.75, click=lambda *args: None): + self.ui = ui + self.shadow_box = mcrfpy.Frame + x, y = pos + + # box w/ drop shadow + self.shadow_offset = shadow_offset + self.base_frame = mcrfpy.Frame(x, y, box_width+shadow_offset, box_height, fill_color = (0, 0, 0, 255)) + self.base_frame.click = self.do_click + + # drop shadow won't need configured, append directly + self.base_frame.children.append(mcrfpy.Frame(0, 0, box_width, box_height, fill_color = shadow_color)) + + # main button is where the content lives + self.main_button = mcrfpy.Frame(shadow_offset, shadow_offset, box_width, box_height, fill_color = box_color) + self.click = click + self.base_frame.children.append(self.main_button) + + # main button icon + self.icon = mcrfpy.Sprite(0, 3, btn_tex, icon, icon_scale) + self.main_button.children.append(self.icon) + + # main button caption + self.caption = mcrfpy.Caption((40, 3), caption, font, fill_color=font_color) + self.caption.size = font_size + self.caption.outline_color=font_outline_color + self.caption.outline=font_outline_width + self.main_button.children.append(self.caption) + + def unpress(self): + """Helper func for when graphics changes or glitches make the button stuck down""" + self.main_button.x, self.main_button.y = (self.shadow_offset, self.shadow_offset) + + def do_click(self, x, y, mousebtn, event): + if event == "start": + self.main_button.x, self.main_button.y = (0, 0) + elif event == "end": + self.main_button.x, self.main_button.y = (self.shadow_offset, self.shadow_offset) + result = self.click(self, (x, y, mousebtn, event)) + if result: # return True from event function to instantly un-pop + self.main_button.x, self.main_button.y = (self.shadow_offset, self.shadow_offset) + + @property + def text(self): + return self.caption.text + + @text.setter + def text(self, value): + self.caption.text = value + + @property + def sprite_number(self): + return self.icon.sprite_number + + @sprite_number.setter + def sprite_number(self, value): + self.icon.sprite_number = value + +class MainMenu: + def __init__(self): + mcrfpy.createScene("menu") + self.ui = mcrfpy.sceneUI("menu") + mcrfpy.setScene("menu") + self.crypt = None + + components = [] + # demo grid + #components.append( + # ) + + # title text + drop_shadow = mcrfpy.Caption((150, 10), "Crypt Of Sokoban", font, fill_color=(96, 96, 96), outline_color=(192, 0, 0)) + drop_shadow.outline = 3 + drop_shadow.size = 64 + components.append( + drop_shadow + ) + + title_txt = mcrfpy.Caption((158, 18), "Crypt Of Sokoban", font, fill_color=(255, 255, 255)) + title_txt.size = 64 + components.append( + title_txt + ) + + # toast: text over the demo grid that fades out on a timer + self.toast = mcrfpy.Caption((150, 400), "", font, fill_color=(0, 0, 0)) + self.toast.size = 28 + self.toast.outline = 2 + self.toast.outline_color = (255, 255, 255) + self.toast_event = None + components.append(self.toast) + + # button - PLAY + #playbtn = mcrfpy.Frame(284, 548, 456, 120, fill_color = + play_btn = SweetButton(self.ui, (284, 548), "PLAY", box_width=456, box_height=110, icon=1, icon_scale=2.0, click=self.play) + components.append(play_btn.base_frame) + + # button - config menu pane + #self.config = lambda self, sweet_btn, *args: print(f"boop, sweet button {sweet_btn} config {args}") + config_btn = SweetButton(self.ui, (10, 678), "Settings", icon=2, click=self.show_config) + components.append(config_btn.base_frame) + + # button - insta-1080p scaling + scale_btn = SweetButton(self.ui, (10+256, 678), "Scale up\nto 1080p", icon=15, click=self.scale) + self.scaled = False + components.append(scale_btn.base_frame) + + # button - music toggle + music_btn = SweetButton(self.ui, (10+256*2, 678), "Music\nON", icon=12, click=self.music_toggle) + self.music_enabled = True + self.music_volume = 40 + components.append(music_btn.base_frame) + + # button - sfx toggle + sfx_btn = SweetButton(self.ui, (10+256*3, 678), "SFX\nON", icon=0, click=self.sfx_toggle) + self.sfx_enabled = True + self.sfx_volume = 40 + components.append(sfx_btn.base_frame) + + [self.ui.append(e) for e in components] + + def toast_say(self, txt, delay=10): + "kick off a toast event" + if self.toast_event is not None: + mcrfpy.delTimer("toast_timer") + self.toast.text = txt + self.toast_event = 350 + self.toast.fill_color = (255, 255, 255, 255) + self.toast.outline = 2 + self.toast.outline_color = (0, 0, 0, 255) + mcrfpy.setTimer("toast_timer", self.toast_callback, 100) + + def toast_callback(self, *args): + "fade out the toast text" + self.toast_event -= 5 + if self.toast_event < 0: + self.toast_event = None + mcrfpy.delTimer("toast_timer") + mcrfpy.text = "" + return + a = min(self.toast_event, 255) + self.toast.fill_color = (255, 255, 255, a) + self.toast.outline_color = (0, 0, 0, a) + + def show_config(self, sweet_btn, args): + self.toast_say("Beep, Boop! Configurations will go here.") + + def play(self, sweet_btn, args): + #if args[3] == "start": return # DRAMATIC on release action! + if args[3] == "end": return + self.crypt = Crypt() + #mcrfpy.setScene("play") + self.crypt.start() + + def scale(self, sweet_btn, args, window_scale=None): + if args[3] == "end": return + if not window_scale: + self.scaled = not self.scaled + window_scale = 1.3 + else: + self.scaled = True + sweet_btn.unpress() + if self.scaled: + self.toast_say("Windowed mode only, sorry!\nCheck Settings for for fine-tuned controls.") + mcrfpy.setScale(window_scale) + sweet_btn.text = "Scale down\n to 1.0x" + else: + mcrfpy.setScale(1.0) + sweet_btn.text = "Scale up\nto 1080p" + + def music_toggle(self, sweet_btn, args): + if args[3] == "end": return + self.music_enabled = not self.music_enabled + print(f"music: {self.music_enabled}") + if self.music_enabled: + mcrfpy.setMusicVolume(self.music_volume) + sweet_btn.text = "Music is ON" + sweet_btn.sprite_number = 12 + else: + self.toast_say("Use your volume keys or\nlook in Settings for a volume meter.") + mcrfpy.setMusicVolume(0) + sweet_btn.text = "Music is OFF" + sweet_btn.sprite_number = 17 + + def sfx_toggle(self, sweet_btn, args): + if args[3] == "end": return + self.sfx_enabled = not self.sfx_enabled + print(f"sfx: {self.sfx_enabled}") + if self.sfx_enabled: + mcrfpy.setSoundVolume(self.sfx_volume) + sweet_btn.text = "SFX are ON" + sweet_btn.sprite_number = 0 + else: + self.toast_say("Use your volume keys or\nlook in Settings for a volume meter.") + mcrfpy.setSoundVolume(0) + sweet_btn.text = "SFX are OFF" + sweet_btn.sprite_number = 17 + +mainmenu = MainMenu()