From 7142943b71f5660bd7f342dae4711f185bb08e19 Mon Sep 17 00:00:00 2001 From: landgreen Date: Sun, 9 Feb 2025 17:47:36 -0800 Subject: [PATCH] pilot wave tech pilot wave tech: Bells theorem - field is always on for no energy cost pilot wave tech: principle of locality - 0.9x damage taken while inside pilot wave field, -2 choices hidden-variable theory 1.2->1.3 damage per field tech WIMPS spawn 4->5 research per level bug fixes fixed exploit with final tech power up on subway level --- img/Bells theorem.webp | Bin 0 -> 64316 bytes img/principle of locality.webp | Bin 0 -> 35652 bytes js/bullet.js | 2 +- js/index.js | 39 ++++++++- js/level.js | 36 ++++---- js/player.js | 29 ++++--- js/powerup.js | 6 +- js/tech.js | 147 +++++++++++++++++++-------------- todo.txt | 44 ++++------ 9 files changed, 178 insertions(+), 125 deletions(-) create mode 100644 img/Bells theorem.webp create mode 100644 img/principle of locality.webp diff --git a/img/Bells theorem.webp b/img/Bells theorem.webp new file mode 100644 index 0000000000000000000000000000000000000000..fe6d266adc28867ddda9395497123f19a07bfc30 GIT binary patch literal 64316 zcmV()K;OSoNk&FA`v3q}MM6+kP&gnc`v3s2Q30I+Du4k10X_r)MF0Q@mM{s^DiX$X zMejejdIxe3O@5C1XZX+c|KR`lf57=;|1<70qi(GKm-lDxMa`e_Kg9o(|DXO#|Ns5( zyFcc??fVND1`S%6=od3h^E&pTxfBWC} zU;qE{{ha@I|7-ul{lEK<|NlXs(tp7J(fzOg*YW}XTmS#P2k;O0pZ>joKYaKBcO~{; z$1mGoQ2!J7=j#92Kf`~G{^S3n{g2eg!hg+wgzppPAFThT{{#EY?ho;wu|IqM)&58Q zpZ9`t^?%%d`2WB8 z#`fR%f8;;fccy9I+CSQVj{VvA1@;5zpXR^1|D6AU{uB2j*<<^^^MAcQ<9>zxkNw~G zPu>snAOHUVf0KVc|1bU9{Kx!%@gMp>;{9d*H~w$=f8OsxpRa$3|Cj!c^1ti{`H%HK z^&jB>)qlnRAOGv^JNIw)|KUH*f6xCn|NH)L!f(#Mum7$81O9jZhxl**pY{Jh|B(MV z{|o)Y{IC0u@IU`Q=KaQhy!!w9vHIiw&+^;%|L~La_wMue`~Grr%|=tBa#rzMdJn@P zsso#7dS`I4MZANoh}rBu$$T_$>+!BaLT2tk_Y0U5I#ql&wStmQ44K|U?^F^g8_tLN zt`JqsDRER+#u2ne`oriJ%lO^-gIA&TJ~KN$u0Q;&?88)?SV!E7B)+vkJ}jb08G7T7XC#a zq{4e*11#$qHMvV|VErFdOhbL{LB+HD7t`UP^>j77@?gDQ0b;7cA&9f2w*#Mxcr|Jt z&j^XJCa_6+meW?yOf&I$TaBNRqzh}wTd%E$RCne#c4IH$OL8G;tQU$OWLwF3d2?Uz zv;Xb+vfAY3j!gSYJz8k06C368gCcqc=MyOI;pP}y*5 z{crD#I+B7$hi{aQTy85?+=IVOGLuPTw)&wYA!5grwK@&Le|WdSOtpG*)J^{Qe!dd z@M-34?|5ixU+cZ7QvVczs<|{pS?A#IS^1rUBfs&PNLYwLtz~^-e9RcLhSvkJd0^9a zq9%czC#Po)a*X`G<8iYlx~QV)2H!hC+mx;23b({$K&ntxrH^Zrt&Wu-1Dn~b+2RS` z;~-QwHz!r=Oqv9ewZGI}^|o}@qU4mxjTyVhYwnZWK3J%?rn1g7sb>4Nd%p+lar!hy ze`i1Fefrch<>!!I5|0H%;_}a%6NAs8C$E1_LQ$MCb;l~tIUXpzCIj^sCxa1;ARXIl zBS!V@vI^0sy9?4Uh!WK^yF~#nW|Sl?Tm@(rp16n6XGHppk>|*1t7y1rf^oBcpZD}2 zUqGt9LFeSp{#m}MT8|j@;`7xVDl#8`4BhJ|`q_zGg(B^j+!uQy$w8=q-nDL~t(uvy z6RvUovF!q~=TZ;jA1{1?)9>S=+9Kdj4|MIt@unp%Qy#5>0bQ})7g*C|y(m-u@9i>0 z?e6nAWlXtXz99LE4YUcwhScDDlYxIDSsWr#0xLqU??JKx;8atbV9UDQToHVe6&wYA z7~wmoDv(Hr6H+@V_3_A7axZ9`2EPTiF>O7JpQOFWJpvjE{W}$ZFW-TDSc{DlW==C&GGVj@}*q_hz;#bE!ywQbANinD0ZZ(VdEM*vEl z_WbybCO_}F`@8Z-17aE~+Cmp1S}6Rn+Z|wD7{a)a2}1_UU#*-k*OI?$(;PyhVKKJp ztA^F}kv(Cp1RuaX&YHW7)A_J@>Br#TUlLrkWebIgU4pjZAA>OjcY~WxxP=EH!=kTt z&z{aqseU;6K6iSFCUiPaHjbM_koW2X;9<8)7iI&B_CsN3Ch(%|->lD1|E_dww)s*P z-|WYIe%W#Ct|gRTVpn1_wZGqC)z8enlv@Y7_DpW=&Yx}GPUJdWv!?>(>ve)7F?(p{ z>rLd`Xm``Z*3ysVGH(@=Zz6Rt?zz_U--w?|mQOOuv)}juf3n~bW z?MDD^EzkNqUqAS6YhSQA7Tya1L%?LXrKbeWT_<^l0b6&S-^xL~oDg07Q!5(-o-{(9yw2a++Lf+Z}kKKD5iydVUKrs_!LCH+B?+XAV z&)4nG4=`ZJpSZNf6NvkupXnR#uqESE>SdmFn`59H101L-589LE0G}P`^M&E5kwg{_ z5Z08G&vdFlSnyBG(a_zzABT37y)UJdyj|Gc3HJ6dw*}M%FQDu6T`~!8`ixsuNQwNr zoD=g1D?c-ibTI5L#;(|#WVI`eWH

w{~WoD4I(%*sIcaWd`xy5P7tR%4kMX+2XmA z=8@IEGB|pzML09d6JG1LP;B_$ok(Ot^CM2|ueNgr<)Np;)qKZLv~~lB_>eUEs8yq? z30So4KIDjnp&^}#O^C|11Jf146VznUFWr;_h@FIHhCigG-$A~%QFzmN?J&y z`5W~d z#gxz~?pNrSO1omV@M|dIs~K%F^)hbb8TL`2^rNy--E@E3N9#fZ-1vIDYUDOG0|X-DRcZYq0ftV^J=_|wZqnBCO^7W z*&NE2Zu)>QDTdq$ATqySlibN+d|<88c(|v%vV|@|nO~;V2su`kNd6)8ZvATNsx4km zVy2AJMv7%zHeys?X@uN3@FiVIDhzMLDV2IQGYi+ARWka{*eoF}e2Niw5xfYB;+>_w z5B;#Dw25td+eFWC;b8rcRs%{isoLkhP@Tk_2GE64Y+b-JXG1RGK4=XvJwA&N@}*A zFbUe91PP9&{!)yGaP!POVTI@~FWtvhauonEX&P)5@AVn3Q~;_;>Jf^;#*wTcGgB&4 zkD6aafm@l1uLDi;aT}-W1};Uv^E$co>M0q9Z`p$}Dk)?hhoEJl&G`ykt{+klEvmY= zB%rZy0bMDt>q+MRkYN12d+V<{EycgC1}Ece6YGQ?COaC=1?Dj?Aji6SWQ7JF z?#4)Kt5itcnYIz5F;3(}V0qR5$XiFt57}Nb-%PRcc9NR6J;XF3iu>^M;F;mS?oU~o zL4`x%j2bQ3?00D_Ero|@J&tN7wco#Lp~XTdr@`q!`KtI$Iw8XZ+r$%D+0P_6O*T3Kq-(~P^#d9#QP0Oct1t~EpoX{o3x0oCm(=a9Tbb4 zFWCLtepZIFG2313<<59qaC$h|SSpyORLdDcMY>~5I$Av{@C|2IKh#5p&7%vIaX^z2 ztp0b3=STY>4-nljy1Qei!YYHW3t3nLvs`|rN{+WaTxV9Lu}-7?l5-F5E^8*y`Mt7b zM&61Be|E{Ov4EJmHJ@D2J&5Vqp=)|kdk1}xyT5S4Sh}Y)1=2+xj33VX_8}8`#8>^B znK0|h;{75Yr}ZlI*AmWy?7El4gQ+>kjlAgGlzb#Kb~p}6(g(vsI-Twk+o2Qg>oIR8 z*nQ;*$pPLVvHDt(cUgfkSZkp}<4`CbKOO2mBsC+!oQ(2dQut`|W=oWkH<|-*ORJeG zB#7xq>&!qs&ymoA8m8%&1-In!usGxJA}~WX*%tuhG%!xWoJ2KW6L`j88>g$s4Q)YN z4n~E+oZK(e=2uj6(KHI6)bZS6U-OFSr!J+Cqt>ge0Ni@JyP#bh}Zp8$l!n2G3}; z?k2|w{mGxqEHI!K+}gH4i?p^3;Z+dAD0>xdShTl}u}wI@su69Tt-DWnvb!y1Yxh!` z0}QCBfA?=b0Za)zVwMk3<83tu2b4~x()9+vNLk?kGz7LQkNP>h3QILm?QA@kPKj8h z5^Bgsza5=9-}Cw0PDUe+SvIH3^HP@mE+{Y$^y-QPlki<+Q9YkR*vNVN^})#)llBWS zv17o73}nH&0Tm$cWt*wNsM$UUCHKcZmsj5{BGsOykrXw|0KNj%U5U06+a$_`uyG>R z{fb^wHNl&zG>)bWD-h_e`JB0SNpqb^`U6u>(t*kDQmI)WP*0FheZHHpc-yMBP(csQ zeCr+)j6>w_I7&`rr&xwFuIADP2Fu@AeDdcIdnVZq#C%CQ0Z#@}vBo(bp07m;5(lk> z@O6M2k#QW1mn`E~Cubss5y}_^0tGXedlk7NIszpAf$X&JLQJSn%JY+wbyj>{wCb&g zYdS@L9HpK8>r<MCAIu5 z$2nuCYpafYhlgS3+fuv6E8o6i-B4plA!Hhb03CS(cv%n36*i$)x8H zl(6Fy1nG=BMgk@Od*&vf&TL5{VCl+nV%zo4{D8|TA|)~DYJP{XVYo9T4h#@p)R(%a zr+|h_ZTYCtK4Dn7h*7Jv*#KrLymXw(}(H;YPmJ}MBi^fod-T#X7oL_j!8Sa9yzWP`9 z%?n9iJLF%b6dOwgijZaxcGL}t)sL(VyD}s!SvvLONiuxvEDRTE@C>Q|8$b&90O;w$ zSbXjdW(q||;|CCR*5CkwpioN=DmA1pV%}2B2B+^B78?%!g2IOdfPkr}R!SC)0cJ~g zZlh=!4U4iaP&sm)00;J%FnlRGy`PjU^Dpq~bLnt|pn-n|LUuJ!HNNR{&tY$*SKr%( zyqY=>D!pUFmE#pz%B7x)guD>)+@2G*c(oa6==|JeHV%q$n}I_|XhDmhs`0p&7*9sv zeEUkd{S{uSnj8Jp+x*B&(b(~ctfHVedfc8nLoT0^E{-oSQP}90@TDbV z#?)8OZvVdCF3xXQ4tdmbIDftDQQI!fm>n5BHyRd8M>Ya{{Q9i0d7oLv;Q0SFP}|q`)MS@1}7{?bNp%Kk!?0@L z8kHa|K9=o)LI|p`kcRo6pk|zG%jhp)&iJe^6u}ZZ(ed_`)0iz`Yv|m&HwSG~Jz&>u z5bpQ9i*kuTNTD6%-2b;tNL_;3H1x%1JfY!O4~?FaaH9LbzQ8m}UlJVz%f(*cg!LH9 z9CczDg`pKN@yAc7SiiFbK3;aOJ!x>BjE3qh?joiNh>UjpTFkquiv5hWIDR}`|GMDt zUA&TnVK*fXpdzk@x5sg3n1(UG|977g*BimH0Z1XUC^hhgAAcKngFm94gS1es9@TcG ztnt>@b@c$B{+I7Png?`EtYo=Bs7|#1g2u-mgDEk&lGzSL+cR5^w4ffu zRG)w8S+dS#|Hg5y#sIxwJ-RDOM%hk$Sp-Id?I-%plpy?%fZ{?jPt zXa<4ztL8Gl%*~k0LFr7c8#fNm_dqjzJSLihpde{bIm$u5r?-$CwFomZa9{!zHKXEW zWh|jZ-AjtA(`;1q#`zNlO-E?A5i=+fw=r_*TtT_t2W34=Nh(ZM7qfmIL$i3&c}jNH z_9F{7k>)B&evsQISu&Fa5S;=BA#_2@EaEE$ctd`F5=*#m#Ufl zKvfgiHYjTl!4-%+$E3Ms7))=}eEP=^QC9NPxKJx|)|E7AxxO9f6d}ak)|(7#@jtIu z9HG){14%p4U6(2(J`?oShfR-ld|inE9rWu|Loub*I&$5Umkqc~@c3;vt{hdyTC@() zjD2mcEQmPIu{v5~2ty3JJr!nYvB_yvq%*z}^VyE%wBr{V^k6y$s!%4n9Ely366ls_ zdle?{CoiuMckKfo0K_xqIV|FuF*5npbGGyaF?-OWLB=8)jQ?n zo)IP2FI)PE53FKEOfee6<4=D{Jl`;@%7;|_EkgY-a^B;Y<7*_*3he*!+7_0^6u70hFec zE{c76west&pFt8GL$==~gl8yFBy#!8kBktOzb6eY=(|Gc1Kk(&tqnJ)Ga!H_Rm&z= zvz!DZhEb@4qm(F}XB4(4diUM#)-~AvLYs;$5z9+7dJ1DCUIcwuok zrZk$Y!EUU8vz;&`6AeiG58|;SSPV7#(A7KH3sg&=!6f~>>b_GAmM3sln1Xu@GgTc^ z*9=9tVM{u_AXuq5k)(|&`2ef1%MUTVG1s#~;n$3ndAMTppcxp~b$#ni`+L2eX8=7n zXEP)_I|J!z{o}?a$K+sU(0O$zk5Lezkt;c7XF6@~JBLPmCi8TsZ*45~k>FpmaGjV! zhT8ojN;U8E#OMIGi5|Yv9K~NGKPaOc+7a5ggi9d--Hd=_z}}CN6Qz86ylE_}KX2d`0V5grsC!ox#o~Ai@(#8K|9L`3Ml2%n&F^CnbR_qYfcE zGD({jhXmiv3oK=bYj7MM9^it6nzTG;{dX-Rq4a zVZ73Dl|WeJjArhv+=%Sk2MZ_L@bvKPj86U|RZfsRPDeI8$XA_wh3DKqaV!CbpP78< zWu?rxZ7M~?;IG30^XGN9DeAG1DQ!#$n*_Ppd1ffJO;O{9oc zSC{F6v1UEBVuAd0=_U5Uc`8(2FQW-}6&p!lvED7Hm|cC(>6E3wRTXwMv2%*y#p?xj zLn3KmbA6Nw$tJ`tL+f1ZWqvl9YxpGxeP!|4gqEACu&?O5*T$p{oDq*^@>Sx6bBM7@ zS#yb6EeN6#(k}-L>i)!Rt#pFeb5_&p+13MDx?%JTq`&7&EF9s%`3aA=lUYHuU#SCn z>N;HXm#Z2UgBPS6x{}ZVP~gCy*Pc!_t$WsQbp{6jr_eUN0mc7)G!ke_^yd=4yZ&$R zLZ3!RBNE$RY|C8F2*-sSO0iy(AVs?M=nmAP&Rqwp%SyIb7Qbz-%&e`KP1V{C_Z*tV z_~Y!njXQqU{S%D=9TIgbqYU1s`s5yq4yN+#<#VO^_dZjbnNdn!BC4_kA}D{*e|#!Vv5NI$2>16&lH;RTwm@R$}bX+G69OJaM=C*YUHHRBo0_R7S; z_{99MkjBL3MfwcAq>zkQ;^~IBx;fo%>|B{KJ3*kv0oLrH3J_Q4fb1<^obG=g`SB^O zt%7E!r@e`fMf;^{sA;BJqJS9sx%;Zg9tn+T_+b`g} z8fh_P2Oyz^swU9Q`~&2rJsbW>IrX__l$-e4Ku6ZxzS!{5Oz)lMdjyKxd|)18i|@r_0s16Kex^nP>xu^+hYHb$c> zU3m2Kmk_Q?;S2PWEs@k|uSn9<&*9M+@q~i0JR`Q)eZ&F(Rl*+NX{Ui-j5VK)N#i(K z22TwDsA{s%h}wTJ!)Ja@p1AML^OaGOBswq`@?e__rG$JYO6eYLJIhC*Rle%3W`7$u z3nk^&13iS#zm*pk*5&_q?9U6Bj-S+(>>kI=0yH8jVQG#TKm*x5;&a+kPap{;qyc0! zSHdObAkS&(dJ5f774#x6peyRiVgN)CsA`IziN`?{?m0jf3?p1)P=1lkAZb!AjaoUe zBoyi$bYhCdGW{(zX3a&3fr0|(>6g;hirI_?M_%=XVVe<$iiy_;n=>(PS8_keW@QQT z+1rL*|1W9AXpV=u%yXj##5*)<88Sa5Pnv)k!}4-@MW4!BNyAJOpy@2u4hGM#CRr2Z zv`|C&)ry{3C7nuIC-S)sYN-9ZXblbs!?(j2=wr@n)TFeP4wS@v!nochHS!(3zLwl9 zsLXO~`>WJAXY4RU4vllc{6ho^qZjeeiT#1YD-UVNKjIYP=f<~M3%}=KKAIH z5wpTK8!N?;Y)qqkeF7N5>+KFLg&r%%1(6FH#v_C){%FBc)wqr?^;NU5+2)PoG4|`} zXXu*8b>f92c{g7cRa)TzmtI}I{;MXtdjo&d&<4^?=~l?F77PwzmIU`@VZy^;ZYNMY z#XJz{$DU_?Q4LV0?ytZCeL-oE8Y_)K>$G=f5C9WQ zi7bSq$q!FgSt*J|uOKO{v4lB2z-0l5deDi5)MCsh!tlhVqsTy7L_6)KH2gmcxF2i} z4g&>?fsM`n))=O*g?A~@FwE6MAy<0Mq69>zbLAZ<i!r%rgy3mU~zz_>Lm4p++wUHF<3 zFDKwAYr~l@3#bGP!!Cn$tf)^g{&2Uetfc)RfMtyanGYX~TACAQmeH%T!#uRf1g1Sl z(Lp)=9QzN()LG?;O`=~+Dyb|DU~!_H<$taDjQrf#~G^%Th7lN*lebo#$Jd6 z@Y5hTp+D@=^dq%WOAG3tnG_Of==V$2En3PYGzVdCFzZy}ym>eh?kkeFJzVsUI8KKj z^whlAiwhA&UR-oflCRuaVo1vzops|q{g`z!dqGPWDK@Nh*FUR@9AwY(8jqS`6SI{{ zWkW|OWwrK77j%Ta*pAer&i#$~GTPll=(B1f#*F6n#P zU1PqOtaGL8GYqw=EUb0YRY1}EbNRuCjJshB>g&;Uq<*YZ-rmvl`;ytK8ozv^TAoV{W;h?t#;`#Edxk*}oKW zZ_7+y;?7)Yh6;+S%ig5PKC;!XvVk+FFJ%lMtNahOMxBY{1gyh+-NMjyB;Ns^?N+Bt zc+MzKHi|ps%z;Ss?H0i(*ld~g{eSCIaDmwXw1Ej!01-z;!A8XNpfP5uCr09;xrd&g zE^||vhV(i(ba7C;j2M7wawd+IE!UUSQ>l%0ecOs^MZeQLq z_4@A70@yX9=}G8G!J(l^EL6pm8MC?k*Y6^;a1Lvg@cxTpnL5+yap%|y;qZGyZYt^O zia6lZ0sy|$zs9nTYCZ?5{o3;?aUB-Ac7$Y$g@M`eQEiGLY-b3PD%H|%JjG1uoMV3p ziq>V4gILMlu;{iKT`HINk3c2Gz(*PG*Ljt)0sJA3a|b=Xv&%J6ZX8?4Hv-7ix{049 zt)aqsk_1uQ?H1GY2*#Fo0EX=@G8xFZgLZ8^*v{QF3cf3(-gH}des4f&xmf2)3=NLi z8F`=KrL`~WeKSOOTsD#Jk)>reSd)=xbXA5U%OR#<<<>=#9m%i9Gdz~exid(|T+?f4g{xTo0_d1Ll- zS0=|of|ZG`xJ?+P<}+A2o# zXeEzpo7owa#(yo>P$x+@V)Dh;L&Gvty_(J zrHWF8eubJ7wJYIb8p%}H%qlOp^9fu_Yr^u&6{m?Zy5@mg_1uiMs}i^?3_D+eVQ zjHRiUytk}uz-ikZviSikRN8+7ttKUk49FfoiwTK#b+uZYr?|A+ZAJ*k*XgP5tXWp= zLAvx{Z2rVM&A-OPjqvfN*}OoUyv@0AnsqT~bBd^^M!vSuRhzT9HF6K^C+AMmZ2fZU z?)&K=Ka_pcMNk@uV8EPZU+d@-Xlx^Wmm&|S3}af>B#TWz0NrH^4Y#R);*e-Ekh(=Z zPi##myJ07+l=l_7y4Gm0>buwwZJH(;-eE<_r4sWX*~AGHxE;B1g>kU*(AW*{IVxd2 zf@und7}#7*rVyDsqzG&6$4Y5h$VS2@U9*(8Q~`fE9yZK_K=N`W0qs~}=%dR%#{;=0 zw$ln>A>x9U>&gU_B|uLBi<$Y^5XzejtqXU2<=mZcTIN14p<5@u#tU?C^sXE!M)4Kz zQ2xQFr7IYfGZ2t;BYF>;&4z94pEy3L%S~dVcvj^(^Wjv!PcW1vw3s0@T^nN3W;U0* z0YiVyLn+*WRA4gpiO;5uF&xOIu~=fqSRm;SyHvqjQ64Z*c5en@U5noN2c*DcQV@$@ z>jHC7gikPz;r}dHAn*hq#OS@mpjPBV-p6~p<6KIVTr+3SE|J!-V(M53Mr8&0aEgXi zdU}Qx>3WeJ2OEqXaE+10kvG(J4gtUXtHuEUF#hN-SiDORjSD^(|3UzWq1et|K6UEU zXIteTFKO{r*MSN+qCtjziXg`C%yk-2EM{JamVRc=l%Rm-Q|ocmaE=A_*b)BDFlG+( zXwc9o4__-Vr=IOuTNS4cOeTHB&-CU^cj!S$A@aU=0EU$46JBY&f?!_K9zm2ov`>WR zCYg{R&gQM`N_`q-8cOqk7Ma(^iiMz*CTw)ZQQeB0q+$7qd@P;FvblBZit(j-rZ7Ts z`5-E_aEr8uAMuxDgU*jwl}lB;1_G5W%MB{r@*h)YT#Qq7cbUNA6Ir;03!(>4h(YU> zYY4B-AtRt`W&6W(tw8Fl4UuJVaSA`@-{l?aW(VPTo_T2~)~StfOnh@U3e!~Fv~6*F zP3{UqXS^ALKxhQBYi^$GlbUEzJN`kICqNh+B%3gbp5;!6$j!b}8HMPqo zW#lj%$8$R`fWR5uJFbTP{gjeyjuIDxo=&&0oWf8j1|CSt7PO z#oB0|Q^p7Gq$^M&AIuq#;@g(ReQ>bRNx4lk$hA933QQR<@k zd+*C3mq}fr^%d`Zh$h^HKFah?U-bIW;?p7QoGsPcHKA}n){e>I z2(WhR1=k{k5PeYtq6W80M7Jxa1)#*h7eVI!%D+r~V^!&C z%ATi`d7{Hy%a0lE*+&V#q4caD8ZR%E{aKL0W+FH?)4?gZ@)mQ>7)v6vgM)8GNU-O& z1+G;S+M4ja2|XT~Y+O;LdKRP74a3h`aFw>t>F`9~AkVr2uN&5zL+HsNa?$gF{4T13 zr}T`FinKYE>I80XWP#k@8yRBvKj`=-<-$Dr00?+CZ9iAh?5uUR^Q}ixjL)!XLr(=? z7#Wpg=FZ<{=(%LeO-u!GUBjExLr{H3!qVvfge_?ItPHB8KouJa9v9XAzkLA#zYH|4 zstS9Jp+(lu*BnRc-9o3(LaQrdN&PUX?L$ClU~V$~xY!SE1%`wdLIrvPH0U_YJHJsz zXEPKif7Nfym`8G+XK!DqIm|)A`w==>b z&}e&hyDUBM<0^m75*T`OALx&j;N?$B*hYerQ?vH^dS*Yf zZ*pe~xvT&iwpiWenSSetaYJ0T%$y47ge4hhvLvlNRdE;yQOyf{BOm~~P)3pV^ZLw` zASqi8=ta#dzOml8_$yHNRgXg$^N)<^DJx+tKDBFaNy92TAMdfkn~9{H0%NKr!k8k? z7ki>|7|^$?_gi`5kxU?u$veK<;=@7K-2Z+efe@Mq$}96V-~SLtO%S_ZsowxZ9asOW z#JT=|1|(+n@i{PtTU=O`u|jCkY4!2E%e8e?ZMmnZGo_q+qR!7_)l z;L27Vz9=cxcG(niHaO)rk&7$#MC!r+T^0#6O=NIlroT<+Xglo6;52w>lCR&gDh3$R zm^_$8RpGt&GV$QZ$Mpx%ASh~J1VgXQ(0HRgUxIA;gp*4v{(NZ_E-lEwHhKA|{x>`C zc6ip-#O5)xirIEY*ot0z=7o#9G|@%`(bDr0@wlXl7KTmdMt{bPAq!XKnskOixneU@ zLC#{WSLd9nh9qE?YaK>7yG=%Rm^3mgEnF^Zeg3R`7^94E;T?f@};%hFFU&%#(uq_nP;o zV&z3+^vC@AotI;h=;F-aMf=Sl$+WqvP+kyWODWm*Fj_gOs3$@S|!Z z{N)Li#@7_C>ya6gkZcUX>)|5wD)jMx4tV0mK6_TP4z$m9J?f|&ZcB?}_|5c~Y=$Wp z{N7$oO8y}2w4c67{c;=$P=Y%FPlJX)h912+XY%@5JQY*6)QdyA#ZkG($25v56Mr1m z;*A&2pq{%x0hOovxbgp~OMka`$Gf5gX}!2Ug9v(H4&v{49?^V7r+C{--Ziki_OV~|WSJ;Fp3#?#FrLfsoWheovRmjB9 z*L{t>tru#cmfn=&OH*H{%kyh8C<1+xxe7CmCR2}BmI0Px4&ghpq1o?kfB(+o>H6$L z9UC`**UPn7k zCiH;p+->}6hRI(GD~%z%=_lfeY3Bqgs1>e#{&4!SlHh}U6;CTqt6H;@JAV~1Ev8&3e)GzG=uaU0k1d6;%6kh3h=yACIJj<9C1|y|huDY9%J$|tKBe%)wboOX zQJ^Pxf5P|*Is!)Cz{A}KaB-%N3UK|U*XUN51xora;iWa|%kvQHldIdnkDX}og+4H< zM!M{yP#^vGg8Nx}J(rA8IiXPfZ;pzdvrLs({k_zGFpn{ed~ZiGRFHD7RY(4|sF>+U z`3RrksnI)6tJR^oz1ksK*CHf-c#oP5d%rCgNG@#I+?G?*X&@MmmEWKq?Y0zQSj8*& z6kb2RG~Z@kW9s{!a;$^WFRFqtkNf?A((NFU@eaMwvi@9UWk)tGu#Ei_T?v-)hP8n{ z;|oyYbg;NL6Cbx%`k?Eaa}LIZ$BxX63hUASsU>cf!Bo= z&M~-~p%?&#sUSQsv_TVai~BDACeI$61(+C&4paBvB4vA%QEa*au%)-lY{L z!qX{D&B2)*3-lSlT~zJ^dShFSlam7){A8sF)67xu%mm>nplu=PnS-S0`0axx)q5>| zzws)KB5~tG1nW1{#_}-!D~;@&w7~Nh6Xh$Gu&9{FshA>?56WrBvm!gUZ7UJiwZ%r5 z^MX!%p*SA&7E%%agnt@B^ity}|5;wh>uQtj2rSpUu=uf=d<1Z;ab8V5vLa&1NR_;j ziSoqEkjF5CQ{mkbS1ciyc-|OAmk&Z{E^&&_UZQzl=h6HUyHBkg%%}+sY z%`^ueCEQN8JbRuel3W}1bpHzF*Dk!Iq3(g}sNv2^#ztqyWhjEwVYSt<$N z1subQp&gpjk5?{U8jwq3c=Zba4E4hw;OYXGlHfRNz0TC( z+8h5a3Qz|?6d+dUsw^lZ_C-Kx0p#DJ+Pk_g%}eHc1yeu0Z)e0fz17fwDoipY6C%x! zKJ6o9=%z*_B5)ECS`13lr<$QDm+OM)Y=E)NqJrLIo9%+Lyf{cyBz9*M%?hFu@g}_u zhjsUfeQs96dog^2lRt9+`)|}2y%XXEitc`WIPvzh2MNm^f5@(%mH>oP%q0?@8*^~# zK;hQ&B!IlWBWq<8#eW1rtWIUh&;~6TiRIvV03ijq(b9gTC&JRD$4dGkFt7v|*J5sv zA)Oj1r6f~W^e2xi`=RcD|Ca;1D>C#1O2<&P%Ihn18HJMC03jM+3($tITCq;eGAi+(Qg0&)NDThHn?({(JEZk?>{- zZcgkR5e8yMkS0MP^3Qn28TgXuiB=o^opdPRM+bb|?3UWV$uyL6d@<=582>eDz;vA! z*?Dnzz33L-QkMb`eoD-^q?`TnXT7SZ!PI?5RV;XTl0;__r)4ue476neX)5h78M(opAyaqW{6Aq&4EIp&B8sWHBP}IO34% zps0+Diby?XV{O+p8`&?SIl=9a-GD+l5Lnm3^CaKt!%|q|-Z8uxPcuy5H#=c+^?|$J zcSpbr4~}s^G{Qgm%f1M>=Zy+7i$O(i6ah_yFP!%-Io4Ebj-arh#aDnBsf^irn+3Nh z^x9@{#BYKX9;~2C$-8o`PKGRF2?4mGY4fUYGbEv1_d*Ahkm6Ih3IYuMG|*Jl8I=NtmppGA0v2i<3HH)bD2k~)EV*XQ#H+nu zul@pSr2ryq`FhJ5Hq%k+oTQRR%QGY=7EvW$cIc2Ao_n-4x}*t990S^q6s+Y?<~wD= zNIgzx9MDfLE*}Cp!q2MUB%_8VM&fNs&>^_~;rj~c40MqfbTd1ODatDn>NB8cPP?6xmOEgwXoy}S_DLsyzT(0NnVkt}Oz*_iQzGJ}I%o&f_^VUR> zRK>1!eL6T^c@=aumO+S!02axg7=M-pDZe zB;7g0(T*L6^sQQ3Cj%y_P20(O5IOr@KL5TzaHx*$*>GS*w#N%&$h(Ekit%iuB;Y;{ z(Y=gw;rzSzK%o6l_0Xd)qwEk2qdFKyu$}IclK@_r%erI90t8N;-u1=CLsU9DmuZ4x zByUsxQefEbUv#|+af&*>07;prRFY)!;p?U1yu>bQ#jDl@dUD`;6wmU`n6gzI1Tqqo zVGG=K91)C|tf{>$++Ge}yrx5;w_g`VOwmYnoZ7xY1NxGf{N5znPI>52_6wSWaH#>K z^u}+g4YwpTl6-^*EIru&ck@Tm=i@q_x*`}K#UaKyUCeo4KJ{6v1f#M9O7~-tRqwvi zAYm(MdGwukn~%S;hTq;=g1hwUbSob?TiKzB?T=SKCwkcJKmZL(ndb_RiyYz8yC}VE z0yB0{jHtfo>;hkfpD}5Jd9R=ei`J_xNtjPTxKvGPt})vnP$2I|Ri2>tElO?VY>Ga! z*9EyShRskBxAzetjV~VcYXwtKNY}=SjdY6jkU?2nBkfc(^-1G6o{v+X@OOnbAz$_= zh3wGZh-9l%ZHJqEAz^8{dL&dvak~tFa4yk|8vm(K5I$J`1_UBXTbfxc!Gcvy6g4@~ z&dJRQH?+p2l%lA1%l#;#UMSSqO(I}@*Xy#3 zw(sJz3V0L=#UNPG@T#m0ti>a&q?HoI?O6d|&xLaK=sQCKTI$udC*;shFf-#bXPtl= zx79uxya%V+{gipVcp$qNI*Vy#&N1K(OC{p4DKjkI8!BVc)+w3cJtBjqJuZuL|C?x> zV$WnGe_r1k`Y491I$igp!wm|I3CoZeBnYxQ+zAry8T602?z;3#3TMwf*uo)W?txXj zHbH47($7gDqVz`+(CF|wY_Dq6cLzNM9}=yX8#@1nb#;LcV*K54 zu+IVj%)_oiZ4jyCRT4dhK2<_H4RH;pbQZEkFGMG!zp>$ZO|AXAFdPSRkq+oow1M#P z@;kz6R>Ttj)Zi&PUeGH#VyCm79BJDiF{K8G6H}F3RP7lu`3xC!775J#x?Mxp%Fwe6 zumZqBa%F)FTF-!Cg5uykQ^+kpzpQ=r6N*+w;(VMYw-&*jX@s73g1i~}W7@P=K6;pa zFXcieaf!5c*u zDjqh}yGZf;B0G|9;jTRHN4@>J?E0?L_DU;=9>xNIK%1G`VSC8ph3bk~H%RVwXNkFB zYrp5wPV~=>!#hA~Bszo;;?yhf4;9K*$W|z#k4QWdh&X2yG~)oHq12Xt$hlmFt`INc zxQXnx@_4%=h`ce`i2&hW8eyoGe>tE?@=yy>eH@lZb;*$4!j0c04;;~PHheFsFKLJMakG7gtyimQlSS8T!1gGlgdTm^s~s&L#AKF-D~(!oAL`4K7>2# z9Z>79d02fm(#OTmySiEFZx3utAggWm`&y(<@@O~1 zvbi?>_}!2Gn7O=E+*g-O%spl#gKYMKcYEPM-erI@RF3v#T}7NJu&qjW@!Y$eOBb?9i zva-Fw{izs2iVlS;x>l!NF#}B$Bid`=wslrbc7r;!sZc`CR`$#orF>K#LDiaA1~Dnm zBhRP)U^)9;EZlWi*9f)!XsPS+2pc-H8Ao}ZSKwi2qV8g!W9z`nMkp+67tII`?}Tt2 zUQXo5#h6XD{VpWR>ZRj{TIlG-JAQzer+?nyVf0$2W@=Gs6;g(Ilnh76lBMv@YnwXkTZSh^bSDw02tkkEQ={fKNMlr9z(-%@lGS}4sl^5c{Dcx zh`VzjlvPx~^cE==356!*AFj5UZr(ALLs$n$<;O1{^N%`YlT}NR_cx6|B9_FrX`7Sn zRE0W!cZvC@>fW3#Q#@gORC^%wkX@|mA0%U*HgKB<8|@tSGA)#pQ-C?{3Hlqe?lLjP zO~$@$*{MpY8lhZ;-3HdzxwDZZk$th&suY+~+r--ZB(ZVFIn-}|TrhwEC4YawrQ*9; zxDoYGJk+IeWOppy`TowQ;N~e_98J1anW++)4rV7aQ4CX$C~F#xW9eV)In#eoM5mEl z5U3$^FMfr@$a^ly#x$8x?y{gR9nuI!)vaWVxhy8wUghxhP?klp-8H#j)sxOBZ;aVx zoTluqv<5W|@n=Zsfwq+l!#dcja|E|vCyqGJyq@wsmFx6vIWaMxifslXig zz1*-rg;)F4w$3Yz@+JUW<#9kt2d)AQ1Tx+ue&f}{teB-J`Wf6+)0V`Z<`?It(z_iA zlx8SbrF7!~h25I25WA z)u75-mFZf?23VkDjw@&;S#+1BPH=#;vible71J{d6Cd3+ zqy6N`!od_OH4~k~?kKlV03s-9IR8d9MGBAv9({>Zs-sv(x7f>FuR0d-^+HFQB3a+a zvtO?;T|Br;-W}uNxbp$R)1YV_uZ{V8T|!WFTr!vgP&9luFg=C2a$hsDx+zXemY^jl zXjMh`JmFl%i+kV@%BEZtqu6+jFkq85!4&y?UKMEI^#l4$U8|c%CX_l6J*p(%1SvDlAP=*LUXf438pz zlK;|-i^_})cHbUp>U@uQd(+l3jK}Je`%NVy=I+i2V_i|&FJ<77zFVU7rp0Og-Zs1+ ztGK-u6Jh<7M(#)XJ;7kh8#ug*Qi-@dI<2ygfkCsL5DQs&J3nbc9mBAxg&C8o6u=hL zU1_$j?Rm#LMe8#V-{@zm`>kF_Zu_r^Rte-A)}9|i^hXzwKZ?#+7q6~2-Cf&qZ7^56 zHmL#pSJ){SKn*r=n%`(o+~N_3>`GT@lS`Al^-u%F;#|gzRC(GJin};=*~SK7Quu`V zT5C^o^Gss-LskH89fh@}RWgGsHi_lojy9qxX~TY^nUP6kfFtlWr7yIq8~086@=)tZ zPDa08L&eSg+owCjA)AEB{oR$#{of2Ny@JGq^7@fbPyjcdsWB_{gt5f!NJOdxt_Kx} zW-ZYpPBTJD06naYdA0|PzA6?(IM9T4zb?aFSzegMX{+w^Qf76J+hBZ?C|xNriwgW( z7OZpt*-!Ltk*TkrkSI{wA^SV4-%YqUg2}BaduV!#I;uli&I_no)EwHBx4__?U-Q_eKpJz zvDhKaL;RCqN860SRBW^>ca}12`+e7qOGKVqB|O*;z1cy~G zaA5u#9X61eAF`#9l8tlB86u2^C* zXEpN39W`cLbB{M(J$gB_^P#2YDv{hY{o>yHq^!)*+tX_Nkv)3C0H)8PAT5leL(TGl z&0>k~J-lJtK>%rheOGZ?fQ;5P-HRDak!lgYU@$meF7ZF$YiNCo|J;k6gDkD6ymI0&(PX4Z0^Y(}1kC4lBH*Ecvi{F#>;{RL zn-9w3abTK(${RzP)(-Xp;*k{+OyuC&)@qLsnumGAuaNf!TZ{XI_ae2 z;>LZL2N`n>Vs1sN!Em)gLQ@T?pRs?EWoM}DO%U;xia=<*yi;dLp9uPb(_tGXx6Ts* zJ3bj_ivs3)XE|)8X+}*{So2#oF@38+U!{z@Q1kVgfhoqf(9lS_I(Uht?Kh5^UIc#J@_4f6UOp4jrZ&t`V2dy(k~vxLS2UNqj;{+I_jSz-@`Y6& zY=>Vj@9RmvR|)@AVMfS^C#Wy4uDF`5MkjsXU;4;vim|!Pv8up^c=R0I9oVw6z_Roq zdA&JI=f;0NS;K)9$c$yI&shLXYar6uX%`An3#YGG%k0P8@_S;W{qlbZKnU77-!jI% zmR&VLZJ8Lp|Lice-qxwd-G+==JsTLENBNqa-Q|orr%z~t6~!?0FG6BIln5(P(j`M2 zrh&c54=^LxwP4fYu5!9D>+mN1XxtEQ6Cq&@mwIAAiAZ!&p4&xgS5l`1iDFR7fE~DJ zH^k$p9r5h^Z>Rm(^$lmxYy{#O;-mlg(2rz0c{z)XBahFU67}Hj%tKvvbd@rVm@aAS z6!rUvQn01ohYb%r6EgF6;IpDxeKB z`+2p~7n9RQXJYb)X9TEkt0#n6%!>AoHWiwUA~2Ji;R%n*LU-@`kQj?8ncJ+)AQdTY z1eEx$`m(Wz6AJ|lhK-1dZ;0Y7LAl^Wa1VbIYtww3i3opVDDke|@E+buO*W)TInnej zq(l_e**W3qDY@QBS177h{+ZoAj3l1F%tESo%c{-mign~c*|QY^c4G4I!j7h^31A+w z+Sg-^-;23JeWwkITaYC{QhGE-CHmlNa($au(W*_XGnk>x!E_{%4lb)Kd>f-Zi|R@q zbFin>j^S2(65X7gz~S%!uMN z!`^}L8p3Er*iJ_9_9Nd$&l>#h_mk$6uzO-1L;L)3oxL9eT5k%#h%UmjGjZ9fI?Yfw zrJ27X3_TOv$PELI>)e5G5=hk>8huGVR|wl2J|Khl+&8d#ed}QX&?|XZh_K(-Fx2>~X5T z`~yDONS0BF+nJ%ojo+K6CRF~V!nru}$#}03#-He5L)7&zQ2=K#l3M39imjE6X8mkd zN1?^x2COZk-y550@&43B2F2N>q|I6Nt^hy85138#U^zIk>t-ovrv6344(KSayNEWe zMr_xzDzNk>M}|UPinI#p4+O%op$@LvpIAb0&yQFWkIj;*{S&p|j#5dG`YW00KcQp!r~pf5(N&7FijlA{}ut zLyH9r2B+$yWped>gWO!r_G(d^2Ex2-;5VVbvo@EKSV|Z##jmoIrtjh~fctvhw`5kC z=OWAM)(n@h04hvGTrWHZGQY7%5l8FyiFG9sdUtF7{?qc{a5Kg?4iKqCjTOs(PkyAu zgNXh=RC_uLC7j}+Lm5vj^l9!$SiBt`qSrmtkDf|U`DgKi%p#TWTw%qu`{Key_%HAI zZ?CDc#?xMq0w6>m8E`gmD2y@C%nc6>TeFOk0TnPp&yx4NgP)K^604Jaq*BoufF@>%CqFlh1FuyE4VP0N46l{%xVt<Op8E_=&HYSuLc^Y?17G zbt}#zhR1Yo&Dk~14|8XPcm``gt>kJpEzrQOO!$NbVIO;9LA585#!td@KGZ)x)350M zF7ZqDqWxp2unCC`hzKf%RUxo1l_-zDM%#izh|HzrK!2e5U6VGeqck>IjLTbLDj>Bs z^>q#^&$5OPMRiDvfJvu@P4-ogYwJAdVF(ZE@}L@P-P0_|qD`)7nsd^$;;Iuwm>a5R zse8RWd3f!Ytk!O0sr(iKK?CxFWO%;DNs5q-68r!$cJF0MmhR^`qyi5~2uI33O%6IN zB;5+i6(b`(YkTob+#6SpO6Xf#w?%W-t!{6Pt(4F1Zn=i!0|r)k%EC~5ICeNRgt!@V z31?TL`f+;GgZk)?=QTDgjiD1p4?AJ$ph!eE5e6a5{nt|{EAT8B@sgkaSU(6F^+kZC z3+aESIyS`&cGWhq+p)uG(b}d~E4mk?{N#Y_%#DkK+-M5Y@t8 zjl|J6Aj%8UVi29Y6Y&CZbhXNXLv;1h zm3exM+^{9$G&+X{`7f8e$I`sw2EpRpM=TaU0)xhne-sTk5 zet=U79qZFVdMIEMiQqb#=Q76HFRevX__N<`%voE{E*@Lit4`EpWsgf9*lF@oW0fFa zye`gThi3rBw3Ogg;PJiL8Xn`8sgolcK+b7l*!@&8h?2l8?gDTUyb zOm!1t(?d0t1Ahe7J&PLv(7j@Abg^&^gblQoN|F9AH$wGeJ=h%-&(SmGEC1+inSYo1 zpaikx<~{QFiFJ*A8B`Em>2hEvWLFcmEbE&mK}Yj!WhGFIoaSQ!u9}7kINjxWE%lW> zY*}WG@rudhX2ae2g}N7`}Qos z4ieJvmA!7h!9bYOnt+9Fd-;YS>1Q@C3uqI=x)l{JNWvbQetSTUuVV21)(Sq z3&PMG6_xPh9UafZw;|P&m;F|!UGvh>_O+xtu)VmMl+YXi?_}`46&p*dl7v2&R>FhM zJkrSl6SP$K2$~NqdOZ~ymBf?=x6qBF7*ZQ(T@<74hmZGO5ot_(43y3<7-HrDiG+eu z2C}o;${h=^?+RiLgk@|tJ*vPn&vVt8V#fZ?DypAV*0-C_z2T_5S~E!pQ2n-O5<%T( z?1H(kb58%XhubmZvJ4}@=~z435Yl$6fPk?#TxAZ<4XWL)OC>e3)bV5krct}w(~e`T zR%(@DF8$o?L|N{sNqTd3q%GXtuBv$Jq{Y-+CLu_fzgf8eH~%{k7+|RGmw30?I=xQ6 zvZ~u_G=pDxC;@4@>$j*jlPu}dlY8YuIu!~wM$Rneo9s$^g45)zl$i@n2g-ZsL;$Pt?U?AGgq6jZ^w{y1js+8E(9lx+@K9BZI}+tKQD{uJ*o_)|0Vp2`!JD-Q@e zOQ7@b3P)$+`wd{OnSb?Tm8Kl1Z)C1}Qq*PsS60^i-s&8Y7y9X4>wt{>xM6WkW zT2BNLd?~ED4uI3}ej`U@6Ob!Gb zv6}|CI9aH7psIT70%_pbW^H`kl%A(*MaKOUOA!;NA;~8LUIXfA_6W{!nLGyG*+)9ASK9EDoba_oIve zGeRQ7U*33G?ZfUTto?)A5_2r$ML(yBrjC*J@6Q##6-GiKTJTr@p1){@s1quyO`F#K zIW;TB+w>G+k}W=$bZk2H(H*NJ#?{Z0>O3oDKllo^c%5QkG$#IdvCS0Wn{E`^_~Kxh+k4;Ko<)^w=qorv~23z4Q6awU92k3)C27u z7H0k3RzP-6MQ~(o&(YeC0ZCvRWvTP903q-Ewz8*mXlYy#>sgAj&PX3D?301hUtUO?&4-iQN2J}LR}y=i#3tcoEh)_gNK z_sUuz5d?8R#UdpffcAGtxfk~Nx|w#Pr5ACFS*9ZY+MlR)S-Jlz-~W9?%H>{$Z-(G< zyMhg=w0{6voHrJ>eo8PpvM8v>K6rY+ml@A{EAG)qBm6&HK45tmTgnHTv>(!=z+%(~ zRYFUwQpdq?yWbyXuFX&6c*-hDX=S5$#z&}wgn&MNASCfczh9UlhvX{^b$_%Fn^hI+ z);|!Z^(sroe>pSTDuP}U4jc9>$}A}3tyaqcP6O|$`tU(dVV=NBDlZ56QPoqQUB2Wd z)Yg3c&pqm<%#c+H(g@0?FCm(?r$#{)ND z-E+Gws-T*~0XSS%N5WO+b=Ofvvwu#e?{C+Ska({@jbsKjy+w*y0Amz_0N z_UlA%hN*$@MLmz-)%PUD-C<5X1Z*`D`xGOnc1se&Xa4wyS}lIki&4SW21r{T zJ^yLjGmbeHr}nnt@O{ft`TNXJw|L0`ai}HrvSWx=N$Tg1BF&A{j!v7o3ItNuUf%I{ zUc5i=ZqCB2E*~i#tr}v63jrXv+jWiW{>cTlpuY!q4*a1o~w_f zY6>A8q#Z(CeRwv%_U&UF&nI6!I!E=KUfu6T4wLREgY%s#E9gRrVl}yrLsqu8dfEf8 z>rm-k!y=J}W!h7fBz#DF!xcF)E1Uyu%J@P>19v*4Il3E*4h%9J2CpT_v)0dC7X<<;fNV?2_OKE?>oP2bQNESDY=se8@8S z|6~Q=jb4MTW_oY-q)H%s+#2a>&Y8^y)XJKC! zOK@W?dP?c>SutJE`lxZa!Wnw~5cho0keHVP?~*o}Xku^$zL9nwKl?s;PXS!%MYb64 zhTZBwelm2p)DV*qAKtsa(n*TVCW#x6E}d4cPT5afLg45yrYiKh*sTPr=H;Zw`y{yH zGJ7P^T*iWLev1V=g%?=us9=Cdl;9QCk1DbQ@kvfhnYj`9_JZBHH@f_##f4CId>5EN zuX3Ib={-RvNPAggk0@NoV=zk$`qj%S&&tI(Uns&9vZI?b7${nX-yC0^DX!(VW{9l+ zSz$0-T*53~Aei2yFUz;}{Y%1?SjFN|Dyu`_qPZ8m_SJPA{9}-qPU!+tZ(4#hd=`!~ z(ksG)4FRtycC@2wn-Tp%4RPkCD*e;(NZVUz^-r5nY+Ufg#`4xO1UP^)u1{}fd7qa5 z^r#hNvdSv-VgN>{vEYX6*z-_TdWD?Ys61%9yXXr5@Oj5eK>Ox!TH-}JDsppxuj2`F z&(Kx5=U8JbobU+;4v0l1fE_MNR62VJw)S_N_q4Qo1CY`*gAX8733PD>8gt9=Jr~K> ziKFiE70ISp;=p7e9+Sn$8WWH0oYFCsJ_=g-J9*Ux^%^fJ)8Z2+FEoPS#6TFv=W`M9 zwswX&f`1k#VDHgG)%mEPq16BrUhOk}_k3+@mP2f8_W`#Hd5U~3Q>(3N9Fhm|*<7cj z&~qK=J3|;sZ(?1RtzQmoSI-^PYDK!aySy3;A)s(4JaUWuO=1&j5Z+(S8u=D_ElO$D z=jW@m4<9lWimm)B23D#s7Yt*^*lq~NJIgF|bH37%Zo{)0kiBZ96DDRjj-8-Twc=t4 zk8X*{t&(Tl#>IX}1LrqoHQ`=?Vz{G5d_)`e6e5{3&Mfmaebz=Z(;W|G^gS+ivCISG zXU&fEk59lQ^9-d@Pt)u35H;LIpiOM7wi&s3Q4lCv1u3-qYDO%c2F>7dkXJN11A;z~ z|4c$qBp^X@gR*L!O*35bXLW}BaxI_rYe}L(G1ZV%6`j~DIiFB`v7aS*>$EpmV{vD2 z@u%Y(la*+A@9RJ=$CAMx7_}QW6dJsUU+~eIb6yhR`fX%u1~cQhQhMCcfQR%s7*~n`#A)VgtePxC5WUd3PBpavKDV(rmMl{@C5FlBwWkGUR?F~LbpHW#sx*b@# z3sCK#zZz5{x->+}LEYl|5{XfN7As|kbM@AS^}mUOp()4A_5=XVdA5px_0#j_00=IH zdJZyKOE|`N0=L6=efv-)-(-qRT~CjM=#6Vi)*u%@NP5mBV@Ey^01Guxx}XA^<(cmZ zRsd{F*Xg<2UO8;?EM>nRACwd<=XIcF>NOxL9B2#nS@s08HQEJT4dWTM)g64-;pJb_ zt|9!tWv*(hV95ltA@7+nLP;o;_ zcp&}S%pnbGz}#H0AS>92s~OA`${!?YU`XuwGsDdT5Amuaxwn8ObE43Q!pgI`%@-xv z8;lJ0*AvYs*fMUcs--*l!KgQDKhOP;XY z?5!f;ebEr^ATin?PYOQ=aHzDiFs;0e7NwhwCYLqeG*gD4pl+AloIgBqk5Coy5BXA; z@#z;CF@cJruS;OoEtDjya3v@+7&FTN{&1_K-few_V!^}eiu94za{~oCUdww7r;UW_ z@j-zpt+Q2Rmi?&FtMq#!D8YUL&1M-#MFz#szypbuJ#y*7+i~wk?IvDb^+HF=ni;K+ zXvbgnZrrwCVOpiK$e9h_E{zCvgfS{vK#LRHtL)~2l*rL#&E|S(GHs-AJj=xXl}p*u zIS>%%_;+Jtb_awT?i#Q%^hOsW4j*U4f+w!%wqx|-W?l&h*MmNkXLB_LEoxIqmYHt^ zZ@nE-RxNG3h5)Q^G9dTCKdd7b~zBJD=EC z36h=_-&TVyYZ@AYHhNHA5$h+{GSW`k>PR%u1Zz#!Dz`fCr;y{OU@bFhcv4vvoBZ+A z)g38g%+B@Ds~|S*HT%t~sN7rqjeXsm#ceLKZo_;A3UgBx#yo)P33844_kVVjUAu@dVnd#_7cdk7cG$J<8GyorKSf3Pe zXJxZt>iD30R$vvHEq!bgA;xt2cYz5ZS67vLCQ}S6`X>!jxgC^5?af z11X4zM}fkApQ66vBxQ*>1wjx+=`85?h#MhNYYz{!q$ZYfX|lm0gYBny^q`FLBTl=< z0S4s9-Y&wH%Rb&^6?vQ=9D{pJ+r(dGqn$}JO{?LMZjWN>&{Ni4u{-|zJh`BI`ow!I zV%MnSmaVm{!zF~NXUniH&HjqU5dO?tM_9LC6n4BXqBx41%_X(XpZe=O7@jlCXj&RF z@2GF~R5N4gtGSVqf1Vn?fred3t$6Dci|2{`ecJ#u=!)_VxPyeM0^tItYu2)h`Zi8G zOAISwp-jD*rGUuTmmR|I6$NpCX56b($iD=OL~~E=7%qyphssCC|!};Xdm-zA2Vcu~- z{1ELtxy|o8EsPHh`^qJ5ZfYCdqe-$DXsHkd%~<|LDg_lcr$W8emY;8m+cvASfXs$14TX$K-yaS zEasV^x}a%0{(wjweIgtSLrXr;{G~V^ilOXK(*7g{FGY1(5(3Bg(Co=D*r9UVM*^>p z<=x3}Ni_iIn>jYY(P=a%olqO5!oHnSf60*w3(O51)WL!xKUk*}Uf4=}IUAb1TchV~ z)gmO4U~h2uYehfBi&B(#A%LPpiBD2}y03=?wySXP-ene0etWmG1`l}dLKWdp71}Fo zfh2>yUFzN`{2SHv0O-8-t0yM)&GMTIwE|WE7Ah!@F=u*wS{F=LDQ=@#X2})4M#w>e zQubn{y9hN~($|h7E%>!epPyfPg$M&W)iIf{^7Oa%wWHu#B2KdDi0%|R>{NGeQ5F0JUG>$sgTv8OOGHF+}tquH^4J*llBF zP*)c*TPwH)5pzkX)7~-q7k-NrWWaTg)DJ>(Z+Drac*T|8sgZnodvGOBc!0VR{W9?d zkZO1ft~X#IfKn!q+`89($4SoL8_U&84>R1-94mHQoIpIenH8pQn#R8us=hXtVz~mF zHO=|K3zIWI1M3^{Fo~OlZkMw{s9oUJ|0(S41`x$Y9T5X3XXxi^hLqSJETG_x4Ywp% zP{}D*)cZGjX;BbhT9unNw$NMN?)Tw*8q<>LcC}mDuc?0;l?jC0@j-|}XYzLvVw9Sv z9%5<*ahBwEpW;t8LXFg*(7xC6syZA{4&^O2q8cL|!oGYfKtTzMFO~TEha3*(x9(|n z$j%Tf=B;IpH@0s#*2ag9&(e(7(fi$15=Dj{c*M=uBOo&+5Ll*qK|t5^$8)_np)t1)gD_jzJBSYNa<8)jXxs> z+PfKhl025g=LqqWaYW2qn()0H+qkXn`b`+1N|8?>;4N{|8mY~cKW%V&*CBHeIz$>h z;n%hPvMF^@@w7Om5z+SwIC85Qlxj3zvk0Y~wv(M^CI|nfFA6e<+R%hyWwGB`>e|IJ zGB%Ky6JvCp0Dlb}@{LN*N&!i0))VRQqJL}}eq#0L49X_5j30xytSOuFTeCl{1JTEk zk~nK>>VXb^_`ao8RZ7WTpN)_@Qb$5!c?K*t|M7mfv}4zTx^4{RItq9~XmT<)SvX z{XgKkOMF;WY7Eu;VE5WuqY{cjtVJ?XROJ%+RZS^5Cnfy5>MH!6(yp>2u&dd_v`WxF zhqhD4OIz@AKFpU_AR#~4G=|?wB0NxVy+B5o(9cl0&#eNO+y_6~7|Y+N+?3Tz=Mpp+ zIfvH#pt!#+r-$z&`+JltIE8I~2$=+N5U|4UZiO5m_Sb@X9d$@ybDdtRdpnr#UinuL z!g`+JIPVY|B^}d&p}EDMeXUedyxne<=fu$x)TnDBW-F9q8oqK-2N^07aM9|A4@7T&z-`NrcA;Z)Lz&&i z3?PqVeyleX!&u6+Fdj>Bu%bhUG-IuMv?}h&r#hRi5k$73@3$lZKbEu2zoH*e&(3xV z8;+hvR~Qf^wH6)Jk&zuUCsFOKaNfF4-Unq(YU6d&;rO=$FsUm9V9rxfbqk?N` z5SJcYDzUVTb!3FFjzA~>YC$f+heHlxthscn*`ZM0OqLV1Rnf%FCwviATH4!Z6smI7 zvQN8xoNw-nXzX>lZ_!YYMb}qet8z!zS6rDilmc^%mPOm*Nwenm+a9Y9Ur7u zYCzM)D<#=pYlFGA=?BdYGdxu3zc40}79*iWDA`(&fT3qAVxj&&f5TJ}=Pw4E@xdtj zHe_4DFb6}wD|=~o+l`Ar726JJDd=;m-x3ILG&f5|F+DBASvb`=DMAjp5sW4eP$|je z)UnYtLYuhNsS94-V9{f=6^YP)a#qw&08c)A6iX(`epzO%6pn=A_@cVyz&4RtB;$wy;WfvYG6YQ8zi}ux(up z8$pJ2UZoXdXlDx)V~Vj8i}IWL2T2rYTvXLA=4lN_r=+Nf5n~Na^x4xU%24*hCZ}(N zpJ=f47Qud~U9KXyY3IV=x%4qwlJkN+&wQQ4zyg19%~>2<;CAc}!)h~?@es-&o2?;h zKc`Fm>0X5#C{@NYwLeq*2BG9P;jPqTOvGvBC$^yr6WH=2T-Ui`r^E?B*BZ2~4cwEe z$osq?ws!PauWtdDu@?K7GWZnHrUSCOSRVl3EARVy=O#XBo)1M{>_(l%AkV-moIS{f z(dg_e_j@nf%TS0zw&U^PfW9Qy+QNx$DgeEW$$>?J_F(-a>_6?5Z4?O|OM8MtT(UZ1 zX|^Q~&OSOPwh8411TAA&yw61jR*G=Op30mqJd4_kiQuR;r;Y0!P{A9-qZ5HUT%$v$ z7XE!7s4soz*HeoqFu zJvlH#JK(0PEAwARQPoOuEN^2$yBr$x4z6ZwTkQV0w1LsEy1JNmT8qkRnlvK?g;#sG?xdzx&wB)6ZyNxX%-Z-0m z9qv79x6l#U>$Yd3wuiMCJXwwrU0>PsFS_g~e7OCmoPCJX<2fAvV4KvxoPl$HkQ1J$ z2kkR7C=}qp2rLwNG^3$wV(!+qm_=+SaeP+wc|@If)ksKU0 zKLtut`&6raIXP_Mo$WwPk|`RHkxXuG&*6n^-9rZ&KxscS;h!u}42Hke#@zZz00^N7 z{PUqRId*cUZHbau`!C5%FW8b$h83ii_o14{-rkhjDuLl8L^CnKck6|`o`23y*kgK9 zDYkp-vvLtur^jcj#!2RPICz;YM7rM7OHqU2=+=y`9KqSt%hS8vwp&z}&4GT@i!O;v zCA@e6AOlr#?|8$B?8Y@`sA-{|hr9=Elel+Pr4Pn<6?WY;Y@IUYCqEMti-bZgNdQ)^Eczgb6{iO@A69>Ek~6E8TKj z!b+?Bu-UxLV~Tl5WwWZ{9rxu5U;KDmrADx6IMJk@51?kJb3ChyWy;l&&u>8+mOmpW zIKYlZvHrdyc22LI+Q#b@b@p(UAxYa6`_9PYZ|ZoO7bN&huX=J<< zl={E2D9s<+J4v3s02_zncw1px7ekZ6Jk#9{M@NtJfuYSX^0VcR&^G|nm-m*%NX(Ot zcP&>+*h|TzQmlV??scM7cB)d;_J*A1Nby6|lV*E|f;EkmpRqYnKpaVWgZC>HssX=9 zzIkvjsK9uQkECV?ZH07yGgWr>E}OBnF5sDc6W;Bsi;PltZ9yM? zNL`1skl57b3GD#hq$P_WG&z)-nw=xBKWb&$o1ajmQbIfWbOSeZ6vTdbmT3b zem=hUg|Z@rTM@XXnBdxb`E>n3*}PRdj==>I>v%Z6Y=GQnD{&s|rV)Y;L{d_@R;;dYqcw=LNNma>F{OBCmtD;CmYag=@SmB%x%vitBAQlMyvU0k2 z-{Uz@CV3ILoq_Urj5D^D$gf0|q^i1qojeu480TMod3jLIZhqA`4rt^T&U7da=25o= z-x`|)E%z#-A>8Oq@V{ZIGT8j=QqPPt=qJr)hSV^x7&`PmO!fK1sIPG8rtlaiTb~#a z)5aG_Qbi)u?0L=X+a>L;;x5P+R`}Tida3p^q$D-45RV`%9ySFA2xYH~+NS;%c}=ya z;zZY#T(^un)TOQww8p01StzIob+NF8gHF$b0ftoM-}V!T1jNrW9m!4Mf9ac~EHes6 zeW7+3ijTwO%22vBVl-GV8em#jdARzo>WAkWe?XSBj&c-NR^uQd z9S)dR3IAsGAQpCLx2Z)89xh^1P>4P}x+nw^_Lj9Cjk(ub+AX%+7Khj_IXjYZ7IikS z<`iDrAh3epoyoX*fWB>hcB?ZU1CWtd2r}%T;2H@AD%U|+gK4Ktfrfi-N@<`*@Wrg* z+D~%2k$~oox?fOt#c8plo6(SuLWD&C^_}ZJ+O3n~B5$1X0#_K`#!P8vAmB$r46-Gk z!_=5%K9;UJh6y<y| ze-x=zic%a{Dlq!EX`*tCSe%xSf=jOouJJoAmBLF0Rc-Si0Fg`KWy)Shz`NiyYoj0Z z+?Ffb-1i<89oWj`@X|hsPzhjW%!W}s*lV!^b6x&{tn%d1SlxErq+Tv$&1RR!w%_qm z4#7kD=;vd)4m)M3dsy=D(bjS#c zUHOOv%ssNYJSs-fMLV4$W+I|4Ze4SYwZ?|b^RM-);S?YdQT6falhZ6|7Y;_^S5;!A zETd=LzUk1-+b&I6a*H|=z2t1cGtt(dR;b)$Px>SALj_x8*>Syb zPq9-c3YuoKPbrb|eb>fHw`N5MJAHmqM6xcU)6+XcpKPDAe!^FsYEZ^ej zwm=z@*o}RSFT!5q<|Xk(m>1V*%nF!`aiP7PWjncYiag=WcY*3#`_b^;;k~3+H9iw= z?{6IkHR*J$cjO`Y!+=U0tJQ~hz#%2X4=m`uSprz@a^DlC>roY&?r=fJA)Z(UWSHas zF|7?~+V%`TNxeX|6$Y=wAv<>-w&uzgT`cI!x1|vl@Dm6L$gv;|s z5@1D1c%_H8O@egZ^A`Ivv*)>2^|Fe`anVp+WBL|S)WX$npXIzIv;~o)FwR6(vp@12 za-c#`u5+E zO&w2rlU7PXKr$t8K3dP88U;er`M7Hj_HRheOw2UuoZmk) zESR7gPlCby)UPTB2Kz9D3u=f|HES?6b7`ozN91FT+1ys??6b#fo+d=koeapCEcLxrfTsp8e7X7f3o}eTW zdtmI)8hWer*{`Q`N~T_%u1ovbaK?K@E*g#La8srYLAx22%#}0Xu||ljVq3!5M-0Bb zF91M5zrQOhNB(l3O~6Xf(as~n$~xe33z_s8!~Yswc3fwyXk?gY|f6$g|x#IIAFYdinr#e$`>!e>GLoa6<)X z)APuPb7SS|py-Y#3m0qowN5aRs=YL0*KLrQ=?^G(Z@L()+hI-FKPZHE1AK6x00aah zWdY`MN66m_pqU5~SJe20Ui4pRSW-#;9U6VB6wq~|TL(!Xafc(F6h;}pEvv&j0LV9eOJDvCzg2=Xx3=pp3b?asehcna9SA;?aMjPrCoVPjL?uy( z!BsDlsP@Mr*{Bz!RlHKv=d4nQ*V&|D7#=^VbOP4@0b2ngehP4SwM1J$w&Ovt$kf`K z_-z7ez!m!$iCd%J-#%S6N|L68^mLs6j@BlFX_SnQQ!yp~m%vy!)UCsk-y;u(uoMc1 zb(?rp(y|EYLwE=JQeg3zb>petMi7Uz_y6W@5>yqKI+r|KG#D7+%@E4d1gp@<{_hA1 za1MiPw<1#Oaea=gk*8o&?$huUGtrs=jX0JlAjF_RAukV-zOhlxh-gdsR_E>Sm~<0P z$48L-i2q9~q)vw=Lmud6U8(Vk!G*@XZI%^2>O6oGERq6!>5)}{#IQN{@(e<`F&aZp z9`QK(*JK4XOWKJ`Dmc$w)Si`7#m!XZ{g7e}uVsX43MM-8SZ>@LqgXW|7o5dAbAWSD zi>WmE$~e&#>LSavP^AuNWv{btUyl5Z!J5L^662e2=*f6#G2W#VVIw0$zNT2eGJ zMzd;4^Nk;1aK=`x*KV-c!-c9-ibqUh$a&Z|Y1tyj&|OoFx`9azJh3!4ANE-_%TOt~ z={rb2UZ*zM1~2QKjOSHbdK7y$$z#8oaOi&CX9GX>e#{+=yyfNADyL#!=$N-nAA}jUT+ns#^p0jBhQ%i` zSPRw-0B1N!(oxajRYOZMErkOfJ#Kaj0p9T$R)2Sz3stfnzLhbzP za=M1kPA#w7tr;HdrO>+v;oTM>$b}s&HAdC{%f7qyL&goseD-60ZJ?bh=2HjYE}M8O z1y9Cc3f-t9oQOS0{6JpoTJGG%Zz}$%kwb^nWst>=lZ02xmrgMlWAu%O$jg(=V@-yv z0iLyw-d)OGTrlE;b}WTj@Rov923K3_)=ABpTmPt8|53!|-7OO2#R@{T#(ss`n9O(q z9!J7VF3$=_iI@>ZXxF$`f%^Sqgn*?BtFK?0?j#v9EjlXEaE&;pa{6=6X2_peAhi zP-D{g+Qq&_%GLYC;LWxnd&RI)JcOH15!#2(@i3$9-bRMN5@xYZURO&{dprO)K}{IX z2$Gw*n-{}p4O)#4IU{{DMH;3JNrdFV@TMd6Pe|Jxt zA?N1ZcmQ_+E?zA9v4POFP%akysW76BFICZ&8H0-YJzNhsA0cJ75@j1x(tkhaCHyYr z$yqh4)plFtV{%|Il40*}1B^iK=K-DXIq6LUHXWT{>=&AFe4L9!mag%o+mnVtu`Ekf z9p9>&I$JCaC&CnnvnQ~Fkl&JSab;2^oTk`bOT!ru2@B&*&o|`i{o-UBi7adTAjjaM zxP9`p)8zOi%86!Ce=e(la8yY*TVychDzWzNczw8urXEtdZ@l_44#3|#=(48t77 zq~MaU8Yo5nm=Th~CgmIcL_*6Z_D{7NftPMr>Q|yxkbUrEhC{>VOY5byf*@B<+LX}G z#@iAjKAJ7ms?+80H=YW5JX2s0_jV&{kO12`FRJLEqQSVl8R&JEc(O_RdDeS2_7mno zhR9LTQ+~U0twh9_bytDY_sPf!+T4teWP>AAfjgm}=eIJGHS-RkEnVDYkX5<4)D79!t+(|RhhN1=T*(w?}AU(b4Zvo�|2li`X5v#Ywmw9L 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 RnF1{HG;i#$>zyQA0024gMgaf- literal 0 HcmV?d00001 diff --git a/img/principle of locality.webp b/img/principle of locality.webp new file mode 100644 index 0000000000000000000000000000000000000000..83cfa824eeaa9458f616c56b7bbf23c0a998c7da GIT binary patch literal 35652 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

~Fh<%&!M7xJcb6J1skl6Zh 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 +Rm3+}nI$ZhartbXAHI_?5`psh~ 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 A0RR91 literal 0 HcmV?d00001 diff --git a/js/bullet.js b/js/bullet.js index 2669cca..4dac62e 100644 --- a/js/bullet.js +++ b/js/bullet.js @@ -287,7 +287,7 @@ const b = { }, fireCDscale: 1, setFireCD() { - b.fireCDscale = tech.fireRate * tech.slowFire * tech.researchHaste * tech.aimDamage + b.fireCDscale = tech.fireRate * tech.slowFire * tech.researchHaste * tech.slowFireDamage if (m.fieldMode === 6) b.fireCDscale *= 0.8 if (tech.isFastTime) b.fireCDscale *= 0.666 if (tech.isFireRateForGuns) b.fireCDscale *= Math.pow(0.76923, Math.max(0, b.inventory.length - 1)) diff --git a/js/index.js b/js/index.js index f75d9f0..e0e4605 100644 --- a/js/index.js +++ b/js/index.js @@ -1,5 +1,14 @@ "use strict"; +//list of the recent github hashes, shortened to the first 7 digits of the full hash. +//the last element of the array is the most recent commit +// const commitHashes = ['6472d6d', 'c8bf77d', 'eb8f4b0', 'f556371', '74f569b', 'c9f355b', '6814c10', '9402cf2', 'f8b4b6f', '82c0ea8', 'f9849d4', 'd00a94a', '3654198', '9bcf4d3', 'eecf763', 'be109bb', 'e2bf9aa', '3ea8bfd', 'c614451', '1752453', '34e05c7', '07af7a7', '2e76b5c', '1b23dec', '0b728fb', 'e6e5058', '4f87444', 'e418b93', 'b3fa1bf', '09c9e93', 'd8e978f', 'da559f4', '1d4b0c4', '4415942', '6cd2502', '8a211e8', '3d423a5', '4933ef5', '77cafe3', 'bffaeed', '99bd1c8', '8a3ac11', 'bf5f866', 'b14f2c1', 'ff613dc', '1129b9d', '3844d00', 'e9d2262', 'ce74f42', 'ad33cf6', '2d12f1d', 'c47d860', '4e6acdd', '778a2c9', '68f9269', '17f65cf', 'b5e4b0d', '38d9931', '64f2a9f', '64c81cd', '254ec00', '38ef45a', '1728b53', 'fde3a58', '6c3d97a', '951806d', '2b99e59', '3ce6bec', '773ee5c', '4c6b480', 'a1164ed', '507b060', '63bfaba', 'eabd146', '438c166', '1903b9e', '5e12cea', 'f43a5e3', '022e2fa', '20f9b79', 'fc70dfe', '5eae070', '8dacb02', '52046ca', '220a6b4', 'ebd2274', 'cea1c64', 'a47ef97', 'a8c6c0e', '9c2c9be', '8bb8222', '1fde74d', 'f1a6713', '97c5509', '1966173', '2daeae1', '1040d1f', 'c9a5ab9', '77e484c', 'b2426cd'] +// const lastShortHash = 'b2426cd' +//Landgreen needs to update the commitHashes array with the most recent commit hash on each new upload, but the array will always be missing the current hash since it is generated with each new commit +//write code to check the 2nd most recent hash and see if it match an element in the commitHashes array. Use that to calculate how many commits have been made since the last update + + + //convert text into numbers for seed Math.hash = s => { for (var i = 0, h = 9; i < s.length;) h = Math.imul(h ^ s.charCodeAt(i++), 9 ** 9); @@ -1953,13 +1962,41 @@ document.getElementById("updates").addEventListener("toggle", function () { xhr.open("GET", path, true); xhr.send(); } + + // fetch(`https://api.github.com/repos/landgreen/n-gon/commits?per_page=100`) + // .then(response => { + // if (!response.ok) { + // throw new Error(`GitHub API responded with status ${response.status}`); + // } + // return response.json(); + // }) + // .then(commits => { + // // console.log(commits.sha) + // const array = [] + // commits.forEach(commitData => { + // const shortHash = commitData.sha.substr(0, 7); + // array.push(shortHash) + // }); + // console.log(array) + // }) + // .catch(error => { + // console.error('Error fetching commits:', error); + // }); + + + let text = `

n-gon: todo list and complete change-log
` document.getElementById("updates-div").innerHTML = text /// https://api.github.com/repos/landgreen/n-gon/stats/commit_activity loadJSON('https://api.github.com/repos/landgreen/n-gon/commits', function (data) { - // console.log(data[0].sha) //unique code for most recent commit + // console.log(data[0].sha, lastShortHash) + // if (data[0].sha.substr(0, 7) === lastShortHash) { + // text += "
https://github.com/landgreen/n-gon/: hash matches latest version
" + // } else { + // text += "
https://github.com/landgreen/n-gon/: hash does not match latest version

" + // } for (let i = 0, len = 20; i < len; i++) { text += "" + data[i].commit.author.date.substr(0, 10) + " - "; //+ "
" text += data[i].commit.message diff --git a/js/level.js b/js/level.js index 545b9ed..32622a4 100644 --- a/js/level.js +++ b/js/level.js @@ -35,15 +35,6 @@ const level = { // m.couplingChange(10) // m.setField("pilot wave") //1 standing wave 2 perfect diamagnetism 3 negative mass 4 molecular assembler 5 plasma torch 6 time dilation 7 metamaterial cloaking 8 pilot wave 9 wormhole 10 grappling hook - // spawn.bodyRect(625, -100, 100, 75); - // spawn.bodyRect(750, -125, 250, 100); - // spawn.bodyRect(500, -150, 75, 100); - // spawn.bodyRect(1150, -125, 225, 75); - // spawn.bodyRect(1425, -250, 25, 150); - // spawn.bodyRect(1525, -100, 75, 25); - // spawn.bodyRect(1550, -200, 150, 100); - - // m.energy = 0 // powerUps.research.count = 3 // tech.isHookWire = true @@ -60,8 +51,8 @@ const level = { // requestAnimationFrame(() => { tech.giveTech("non-renewables") }); // tech.giveTech("dark matter") // tech.addJunkTechToPool(0.5) - // for (let i = 0; i < 1; ++i) tech.giveTech("paradigm shift") - // for (let i = 0; i < 1; ++i) tech.giveTech("Higgs mechanism") + // for (let i = 0; i < 1; ++i) tech.giveTech("principle of locality") + // for (let i = 0; i < 1; ++i) tech.giveTech("Bells theorem") // m.skin.egg(); // for (let i = 0; i < 1; ++i) tech.giveTech("many-worlds") // requestAnimationFrame(() => { for (let i = 0; i < 1; i++) tech.giveTech("surfing") }); @@ -71,7 +62,7 @@ const level = { // for (let i = 0; i < 7; i++) powerUps.directSpawn(450, -50, "field"); // for (let i = 0; i < 7; i++) powerUps.directSpawn(m.pos.x + 200, m.pos.y - 250, "research", false); // spawn.bodyRect(575, -700, 150, 150); //block mob line of site on testing - // level.testing(); + // level.subway(); level[simulation.isTraining ? "walk" : "initial"]() //normal starting level ************************************************** @@ -139,7 +130,7 @@ const level = { for (let i = 0; i < tech.wimpCount; i++) { spawn.WIMP() mob[mob.length - 1].isDecoupling = true //so you can find it to remove - for (let j = 0, len = 4; j < len; j++) powerUps.spawn(level.exit.x + 100 * (Math.random() - 0.5), level.exit.y - 100 + 100 * (Math.random() - 0.5), "research", false) + for (let j = 0, len = 5; j < len; j++) powerUps.spawn(level.exit.x + 100 * (Math.random() - 0.5), level.exit.y - 100 + 100 * (Math.random() - 0.5), "research", false) } if (m.plasmaBall) m.plasmaBall.fire() @@ -147,6 +138,11 @@ const level = { const flip = localSettings.entanglement.isHorizontalFlipped === simulation.isHorizontalFlipped ? 1 : -1 powerUps.directSpawn(flip * localSettings.entanglement.position.x, localSettings.entanglement.position.y, "entanglement", false); } + if (m.fieldMode === 8) { + Matter.Body.setPosition(m.fieldUpgrades[8].collider, m.pos); + m.fieldPosition = { x: m.pos.x, y: m.pos.y } + m.lastFieldPosition = { x: m.pos.x, y: m.pos.y } + } level.newLevelOrPhase() if (simulation.isTraining) { simulation.difficultyMode = 1 @@ -3555,6 +3551,7 @@ const level = { stationList.unshift(0) //add index zero to the front of the array let isExitOpen = false + let isTechSpawned = false let gatesOpenRight = -1 let gatesOpenLeft = -1 const infrastructure = (x, isInProgress = true) => { @@ -3636,7 +3633,10 @@ const level = { if (isExitOpen) { level.exit.x = x - 50; level.exit.y = -260; - if (simulation.difficultyMode < 7) powerUps.spawn(level.exit.x, level.exit.y - 100, "tech"); + if (simulation.difficultyMode < 7 && !isTechSpawned) { + isTechSpawned = true + powerUps.spawn(level.exit.x, level.exit.y - 100, "tech"); + } } else { var gateButton = level.button(x - 62, -237, 125, false) //x, y, width = 126, isSpawnBase = true gateButton.isUp = true @@ -7772,6 +7772,7 @@ const level = { }, gravitron() { mobs.maxMobBody = 25 //normally 40, but set lower to avoid too much clutter + level.isVerticalFLipLevel = true simulation.fallHeight = 4000 level.announceMobTypes() @@ -7787,7 +7788,12 @@ const level = { powerUps.chooseRandomPowerUp(3900, 925); let buttons = [] - level.isFlipped = false; + // level.isFlipped = false; + if (simulation.isInvertedVertical) { + level.isFlipped = true + } else { + level.isFlipped = false + } let isFlipping = false; const flipAnimationCycles = 60 diff --git a/js/player.js b/js/player.js index 425f243..99c6787 100644 --- a/js/player.js +++ b/js/player.js @@ -809,6 +809,7 @@ const m = { tech.mineralDamageReduction = 1 - (1 - tech.mineralDamageReduction) * Math.pow(0.9, seconds); dmg *= tech.mineralDamageReduction } + if (tech.isInPilot && Vector.magnitude(Vector.sub(m.fieldPosition, m.pos)) < m.fieldRadius + 100) dmg *= 0.1 // return tech.isEnergyHealth ? Math.pow(dmg, 0.7) : dmg //defense has less effect // dmg *= m.fieldHarmReduction return dmg * m.fieldHarmReduction @@ -5170,6 +5171,7 @@ const m = { keyLog: [null, null, null, null, null, null, null], collider: null, fieldMass: 1, + drain: 1, effect: () => { m.fieldUpgrades[8].collider = Matter.Bodies.polygon(m.pos.x, m.pos.y, 8, 35, { friction: 0, @@ -5177,7 +5179,6 @@ const m = { collisionFilter: { category: cat.player, mask: cat.map }, //no collision because player is holding classType: "field", lastSpeed: 0, - isPLayerInField: false, }); Composite.add(engine.world, m.fieldUpgrades[8].collider); //add to world @@ -5233,11 +5234,13 @@ const m = { m.fieldPosition = { x: simulation.mouseInGame.x, y: simulation.mouseInGame.y } m.lastFieldPosition = { x: simulation.mouseInGame.x, y: simulation.mouseInGame.y } m.fieldOn = false; - // m.fieldFire = true; + if (tech.isNoPilotCost) m.fieldFire = true; + m.fieldRadius = 0; m.drop(); m.hold = function () { + let isOn = (tech.isNoPilotCost ? !input.field : input.field) if (tech.isPrinter) { //spawn blocks if field and crouch if (input.field && m.fieldCDcycle < m.cycle && input.down && !m.isHolding) { @@ -5268,7 +5271,7 @@ const m = { //if releasing field throw it } - if (input.field) { + if (isOn) { if (m.fieldCDcycle < m.cycle) { if (!m.fieldOn) { // if field was off, teleport to player m.fieldOn = true; @@ -5281,7 +5284,7 @@ const m = { const mag = Vector.magnitude(sub) //adjust speed of field here, and with friction and mass above where the collier is spawned - const fieldMassScale = Math.max(1.5, Math.pow(m.fieldUpgrades[8].fieldMass, 0.35)) //how much mass inside the field slows the push and cap + const fieldMassScale = Math.max(1.5, Math.pow(m.fieldUpgrades[8].fieldMass, 0.3)) //how much mass inside the field slows the push and cap const scaledMag = 0.00000017 / fieldMassScale * Math.pow(mag, 2) //having the mag squared makes the effect weaker in close for fine movement let push = Vector.mult(Vector.normalise(sub), scaledMag) const cap = 0.17 / fieldMassScale //acts like a "speed limit" @@ -5296,11 +5299,6 @@ const m = { m.fieldPosition.x = m.fieldUpgrades[8].collider.position.x m.fieldPosition.y = m.fieldUpgrades[8].collider.position.y - //check if player is inside field - // if (tech.isSurfing) { - - // } - //grab power ups into the field for (let i = 0, len = powerUp.length; i < len; ++i) { if (tech.isEnergyNoAmmo && powerUp[i].name === "ammo") continue @@ -5333,18 +5331,16 @@ const m = { } } } - //grab power ups normally at player too - m.grabPowerUp(); let radiusGoal, radiusSmooth, drainPassive if (Matter.Query.ray(map, m.fieldPosition, player.position).length) { //is there something blocking the player's view of the field radiusGoal = 0 radiusSmooth = 0.995 - drainPassive = 1.5 * m.fieldRegen //* (tech.isSurfing && m.fieldUpgrades[8].collider.isPLayerInField ? 0 : 1) + drainPassive = 1.5 * m.fieldRegen * m.fieldUpgrades[8].drain } else { - radiusGoal = Math.max(50, 250 - 2 * m.fieldUpgrades[8].collider.speed) //* (tech.isSurfing && m.fieldUpgrades[8].collider.isPLayerInField ? 1.5 : 1) + radiusGoal = Math.max(50, 250 - 2 * m.fieldUpgrades[8].collider.speed) radiusSmooth = 0.97 - drainPassive = m.fieldRegen //* (tech.isSurfing && m.fieldUpgrades[8].collider.isPLayerInField ? 0 : 1) + drainPassive = m.fieldRegen * m.fieldUpgrades[8].drain } m.fieldRadius = m.fieldRadius * radiusSmooth + radiusGoal * (1 - radiusSmooth) @@ -5358,7 +5354,7 @@ const m = { for (let i = 0, len = body.length; i < len; ++i) { if (Vector.magnitude(Vector.sub(body[i].position, m.fieldPosition)) < m.fieldRadius && !body[i].isNotHoldable) { // const drainBlock = m.fieldUpgrades[8].collider.speed * body[i].mass * 0.0000013 - const drainBlock = speedChange * body[i].mass * 0.000095 //* (tech.isSurfing && m.fieldUpgrades[8].collider.isPLayerInField ? 0 : 1) + const drainBlock = m.fieldUpgrades[8].drain * speedChange * body[i].mass * 0.000095 if (m.energy > drainBlock) { m.energy -= drainBlock; Matter.Body.setVelocity(body[i], m.fieldUpgrades[8].collider.velocity); //give block mouse velocity @@ -5434,6 +5430,9 @@ const m = { m.fieldOn = false m.fieldRadius = 0 } + //grab power ups normally at player too + if (input.field) m.grabPowerUp(); + m.drawRegenEnergy("rgba(0,0,0,0.2)") // //draw physics collider diff --git a/js/powerup.js b/js/powerup.js index 559f5a7..482326f 100644 --- a/js/powerup.js +++ b/js/powerup.js @@ -1138,7 +1138,7 @@ const powerUps = { } // console.log(options.length) if (options.length > 0 || !tech.isSuperDeterminism) { - let totalChoices = 2 + tech.extraChoices + 3 * (m.fieldMode === 8) - level.fewerChoices + let totalChoices = 2 + tech.extraChoices + (tech.isInPilot ? 1 : 3) * (m.fieldMode === 8) - level.fewerChoices if (tech.isCancelTech && tech.cancelTechCount === 1) { totalChoices *= 3 tech.cancelTechCount++ @@ -1205,7 +1205,7 @@ const powerUps = { for (let i = 1; i < m.fieldUpgrades.length; i++) { //skip field emitter if (i !== m.fieldMode) options.push(i); } - let totalChoices = 2 + tech.extraChoices + 3 * (m.fieldMode === 8) - level.fewerChoices + let totalChoices = 2 + tech.extraChoices + (tech.isInPilot ? 1 : 3) * (m.fieldMode === 8) - level.fewerChoices if (tech.isCancelTech && tech.cancelTechCount === 1) { totalChoices *= 3 tech.cancelTechCount++ @@ -1285,7 +1285,7 @@ const powerUps = { } } //set total choices - let totalChoices = 3 + tech.extraChoices + 3 * (m.fieldMode === 8) - level.fewerChoices + let totalChoices = 3 + tech.extraChoices + (tech.isInPilot ? 1 : 3) * (m.fieldMode === 8) - level.fewerChoices if (tech.isCancelTech && tech.cancelTechCount === 1) { totalChoices *= 3 tech.cancelTechCount++ diff --git a/js/tech.js b/js/tech.js index d6a4c66..6868c27 100644 --- a/js/tech.js +++ b/js/tech.js @@ -141,7 +141,7 @@ const tech = { if (tech.tech[index].isLost) tech.tech[index].isLost = false; //give specific tech if (tech.isBanish && tech.tech[index].isBanished) tech.tech[index].isBanished = false //stops the bug where you can't gets stacks of tech you take with decoherence, I think if (tech.isDamageFieldTech && tech.tech[index].isFieldTech) { - tech.damage *= 1.2 + tech.damage *= 1.3 // simulation.inGameConsole(`damage *= ${1.05}`) simulation.inGameConsole(`tech.damage *= ${1.1} //hidden-variable theory`); } @@ -2550,9 +2550,9 @@ const tech = { frequency: 3, frequencyDefault: 3, allowed() { - return (tech.blockDamage > 0.075 || tech.isPrinter) && !tech.nailsDeathMob && !tech.sporesOnDeath && !tech.isExplodeMob && !tech.botSpawner && !tech.iceIXOnDeath + return (tech.blockDamage > 0.075 || tech.isPrinter) }, - requires: "mass driver, printer, no other mob death tech", + requires: "mass driver, printer", effect() { tech.isMobBlockFling = true }, @@ -2570,7 +2570,7 @@ const tech = { frequency: 3, frequencyDefault: 3, allowed() { - return (tech.blockDamage > 0.075 || tech.isPrinter) && m.fieldUpgrades[m.fieldMode].name !== "pilot wave" && !tech.isTokamak + return (tech.blockDamage > 0.075 || tech.isPrinter) && !tech.isTokamak }, requires: "mass driver, printer, not pilot wave, tokamak", effect() { @@ -3089,8 +3089,28 @@ const tech = { } }, { - name: "torpor", - description: "if a mob has not died in the last 5 seconds
0.3x damage taken", + name: "fluoroantimonic acid", + description: "if your health is above 100
1.35x damage", + maxCount: 1, + count: 0, + frequency: 2, + frequencyDefault: 2, + allowed() { + return m.maxHealth > 1; + }, + requires: "maximum health above 100", + effect() { + tech.isAcidDmg = true; + }, + remove() { + tech.isAcidDmg = false; + } + }, + { + name: "control theory", + descriptionFunction() { + return `2x damage
while your health is at maximum` + }, maxCount: 1, count: 0, frequency: 1, @@ -3100,10 +3120,10 @@ const tech = { }, requires: "", effect() { - tech.isHarmReduceNoKill = true; + tech.isMaxHealthDamage = true; }, remove() { - tech.isHarmReduceNoKill = false; + tech.isMaxHealthDamage = false; } }, { @@ -3147,10 +3167,8 @@ const tech = { } }, { - name: "control theory", - descriptionFunction() { - return `2x damage
while your health is at maximum` - }, + name: "torpor", + description: "if a mob has not died in the last 5 seconds
0.3x damage taken", maxCount: 1, count: 0, frequency: 1, @@ -3160,10 +3178,10 @@ const tech = { }, requires: "", effect() { - tech.isMaxHealthDamage = true; + tech.isHarmReduceNoKill = true; }, remove() { - tech.isMaxHealthDamage = false; + tech.isHarmReduceNoKill = false; } }, { @@ -3255,7 +3273,7 @@ const tech = { { name: "ergodicity", descriptionFunction() { - return `0.50x healing from ${powerUps.orb.heal()}
1.7x damage` + return `0.5x healing from ${powerUps.orb.heal()}
1.7x damage` }, maxCount: 1, count: 0, @@ -3291,24 +3309,6 @@ const tech = { tech.isHalfHeals = false; } }, - { - name: "fluoroantimonic acid", - description: "if your health is above 100
1.35x damage", - maxCount: 1, - count: 0, - frequency: 2, - frequencyDefault: 2, - allowed() { - return m.maxHealth > 1; - }, - requires: "maximum health above 100", - effect() { - tech.isAcidDmg = true; - }, - remove() { - tech.isAcidDmg = false; - } - }, { name: "induction brake", descriptionFunction() { @@ -8328,12 +8328,12 @@ const tech = { damage: 1.4, effect() { tech.damage *= this.damage - tech.aimDamage = 1.42 + tech.slowFireDamage = 1.42 b.setFireCD(); }, remove() { if (this.count && m.alive) tech.damage /= this.damage - tech.aimDamage = 1 + tech.slowFireDamage = 1 b.setFireCD(); } }, @@ -8406,9 +8406,9 @@ const tech = { frequency: 2, frequencyDefault: 2, allowed() { - return (m.fieldMode === 10 || m.fieldMode === 5 || m.fieldMode === 8) + return (m.fieldMode === 10 || m.fieldMode === 5 || m.fieldMode === 8) && !tech.isNoPilotCost }, - requires: "plasma torch, grappling hook, pilot wave", + requires: "plasma torch, grappling hook, pilot wave, not Bells theorem", effect() { tech.isHarmReduce = true }, @@ -8811,7 +8811,7 @@ const tech = { }, { name: "hidden-variable theory", - description: `1.2x damage after you choose ${powerUps.orb.fieldTech()}`, + description: `1.3x damage after you choose ${powerUps.orb.fieldTech()}`, isFieldTech: true, maxCount: 1, count: 0, @@ -8828,28 +8828,52 @@ const tech = { tech.isDamageFieldTech = false } }, - // { - // name: "surfing", - // description: `while player is inside the pilot wave field
1.5x field radius and no field energy drain`, - // isFieldTech: true, - // maxCount: 1, - // count: 0, - // frequency: 4, - // frequencyDefault: 4, - // allowed() { - // return m.fieldMode === 8 - // }, - // requires: "pilot wave", - // effect() { - // tech.isSurfing = true - // }, - // remove() { - // tech.isSurfing = false - // } - // }, + { + name: "Bells theorem", + description: `pilot wave is always on
and has no energy cost`, + isFieldTech: true, + maxCount: 1, + count: 0, + frequency: 4, + frequencyDefault: 4, + allowed() { + return m.fieldMode === 8 && !tech.isHarmReduce + }, + requires: "pilot wave, not degenerate matter", + effect() { + tech.isNoPilotCost = true + m.fieldUpgrades[8].drain = 0 + if (m.fieldMode === 8) m.fieldFire = true; + + }, + remove() { + tech.isNoPilotCost = false + m.fieldUpgrades[8].drain = 1 + if (m.fieldMode === 8) m.fieldFire = false + } + }, + { + name: "principle of locality", + description: `0.9x damage taken while inside pilot wave
,
, and
have -2 choices`, + isFieldTech: true, + maxCount: 1, + count: 0, + frequency: 4, + frequencyDefault: 4, + allowed() { + return m.fieldMode === 8 + }, + requires: "pilot wave", + effect() { + tech.isInPilot = true + }, + remove() { + tech.isInPilot = false + } + }, { name: "WIMPs", - description: `at the exit to each level spawn ${powerUps.orb.research(4)}
and a dangerous particle that slowly chases you`, + description: `at the exit to each level spawn ${powerUps.orb.research(5)}
and a dangerous particle that slowly chases you`, isFieldTech: true, maxCount: 9, count: 0, @@ -8862,7 +8886,7 @@ const tech = { effect() { tech.wimpCount++ spawn.WIMP() - for (let j = 0, len = 4; j < len; j++) powerUps.spawn(level.exit.x + 100 * (Math.random() - 0.5), level.exit.y - 100 + 100 * (Math.random() - 0.5), "research", false) + for (let j = 0, len = 5; j < len; j++) powerUps.spawn(level.exit.x + 100 * (Math.random() - 0.5), level.exit.y - 100 + 100 * (Math.random() - 0.5), "research", false) }, remove() { tech.wimpCount = 0 @@ -12127,7 +12151,7 @@ const tech = { bonusEnergy: null, // healGiveMaxEnergy: null, healMaxEnergyBonus: 0, //not null - aimDamage: null, + slowFireDamage: null, isNoFireDefense: null, isNoFireDamage: null, duplicateChance: null, @@ -12369,5 +12393,6 @@ const tech = { mineralDamage: null, negativeMassCost: null, beamCollimator: null, - isSurfing: null, + isInPilot: null, + isNoPilotCost: null, } \ No newline at end of file diff --git a/todo.txt b/todo.txt index cf4299e..e7cb2de 100644 --- a/todo.txt +++ b/todo.txt @@ -1,47 +1,33 @@ ******************************************************** NEXT PATCH ************************************************** -pilot wave effect rework - it's easier to surf on blocks controlled by pilot wave - pilot wave secret combo spawns blocks that are easier to surf on: long and thin - pilot wave location resets to player when off - pilot wave hitting map no longer shrinks, it just will not enter map - field speed slows down with total block mass in field - energy drain - 1x energy regen disabled when field is active - 2x passive regen drained when out of line of sight of player - energy drain that scales with size and acceleration of blocks in field - added graphical flicker when field is out of line of sight - a few more bosses now interact with blocks and can take damage - prevented field from disabling when mouse goes off screen - I don't expect any bugs from this, but maybe... +pilot wave tech: Bells theorem - field is always on for no energy cost +pilot wave tech: principle of locality - 0.9x damage taken while inside pilot wave field, -2 choices -ghoster mobs have 2x->1.5x extra density and health -exploder mobs no longer have a chance for a shield - 2.5x explode damage, 1.3x health - added a red aura to show they explode on contact -spawnerBossCulture changed visual look to be a flashing transparent red outline - 2x explode damage -laser mobs no longer explode, 1.5x density/mass +hidden-variable theory 1.2->1.3 damage per field tech +WIMPS spawn 4->5 research per level + +bug fixes + fixed exploit with final tech power up on subway level ******************************************************** BUGS ******************************************************** -player can become crouched while not touching the ground if they exit the ground while crouched +graphical bug - player can become crouched while not touching the ground if they exit the ground while crouched *********************************************************** TODO ***************************************************** -tech - while player is in field increase field radius and no energy drain - check if player is inside field - m.fieldUpgrades[8].collider.isPLayerInField = false - fix tech.isSurfing && m.fieldUpgrades[8].collider.isPLayerInField - -tech - get a benefit while surfing on a block inside the pilot wave field - defense? damage? tech - benefit if you haven't killed any mobs on this level + have to clean up mobs that die on level spawn from falling blocks tech - benefit in the first 20 seconds of the level plasma globe - it should not explode on map contact, but instead shrink? only explode on mouse release + use pilot wave code? + +rework JUNK + example: +5 JUNK adds a frequency of (1? 6?) to a random JUNK tech + if you see that JUNK tech again it's frequency drops down to 0 again + have to rework constraints and a few other tech... mob - moves around, but then stops and makes porcupine spikes for 2 seconds, then moves again. maybe use hopper movement?