From 29eede8fa8eba08b26c82eddae61f5e84fa21187 Mon Sep 17 00:00:00 2001 From: Elijah Voigt Date: Fri, 6 Dec 2024 22:56:49 -0800 Subject: [PATCH] Hey we have all the cardscargo run --- assets/.gitattributes | 36 +++++++++++++++++++++++++ assets/filled_circle_green.png | Bin 500 -> 128 bytes assets/filled_circle_purple.png | Bin 500 -> 128 bytes assets/filled_circle_red.png | Bin 500 -> 128 bytes assets/filled_circle_white.png | Bin 550 -> 128 bytes assets/filled_diamond_green.png | Bin 457 -> 128 bytes assets/filled_diamond_purple.png | Bin 456 -> 128 bytes assets/filled_diamond_red.png | Bin 456 -> 128 bytes assets/filled_diamond_white.png | Bin 523 -> 128 bytes assets/filled_squiggle_green.png | Bin 673 -> 128 bytes assets/filled_squiggle_purple.png | Bin 673 -> 128 bytes assets/filled_squiggle_red.png | Bin 673 -> 128 bytes assets/filled_squiggle_white.png | Bin 668 -> 128 bytes assets/open_circle_green.png | Bin 578 -> 128 bytes assets/open_circle_purple.png | Bin 577 -> 128 bytes assets/open_circle_red.png | Bin 577 -> 128 bytes assets/open_circle_white.png | Bin 475 -> 128 bytes assets/open_diamond_green.png | Bin 500 -> 128 bytes assets/open_diamond_purple.png | Bin 499 -> 128 bytes assets/open_diamond_red.png | Bin 499 -> 128 bytes assets/open_diamond_white.png | Bin 554 -> 128 bytes assets/open_squiggle_green.png | Bin 786 -> 128 bytes assets/open_squiggle_purple.png | Bin 786 -> 128 bytes assets/open_squiggle_red.png | Bin 786 -> 128 bytes assets/open_squiggle_white.png | Bin 694 -> 128 bytes assets/shaded_circle_green.png | Bin 583 -> 128 bytes assets/shaded_circle_purple.png | Bin 582 -> 128 bytes assets/shaded_circle_red.png | Bin 582 -> 128 bytes assets/shaded_circle_white.png | Bin 604 -> 128 bytes assets/shaded_diamond_green.png | Bin 684 -> 128 bytes assets/shaded_diamond_purple.png | Bin 683 -> 128 bytes assets/shaded_diamond_red.png | Bin 683 -> 128 bytes assets/shaded_diamond_white.png | Bin 705 -> 128 bytes assets/shaded_squiggle_green.png | Bin 759 -> 128 bytes assets/shaded_squiggle_purple.png | Bin 759 -> 128 bytes assets/shaded_squiggle_red.png | Bin 759 -> 128 bytes assets/shaded_squiggle_white.png | Bin 798 -> 128 bytes src/boot.rs | 14 ++++++++-- src/deck.rs | 43 +++++++++++++++++------------- src/main.rs | 2 +- 40 files changed, 73 insertions(+), 22 deletions(-) create mode 100644 assets/.gitattributes diff --git a/assets/.gitattributes b/assets/.gitattributes new file mode 100644 index 0000000..2063859 --- /dev/null +++ b/assets/.gitattributes @@ -0,0 +1,36 @@ +open_circle_white.png filter=lfs diff=lfs merge=lfs -text +shaded_circle_green.png filter=lfs diff=lfs merge=lfs -text +shaded_circle_purple.png filter=lfs diff=lfs merge=lfs -text +filled_circle_white.png filter=lfs diff=lfs merge=lfs -text +open_circle_green.png filter=lfs diff=lfs merge=lfs -text +shaded_squiggle_white.png filter=lfs diff=lfs merge=lfs -text +filled_diamond_green.png filter=lfs diff=lfs merge=lfs -text +open_squiggle_purple.png filter=lfs diff=lfs merge=lfs -text +filled_squiggle_red.png filter=lfs diff=lfs merge=lfs -text +open_circle_red.png filter=lfs diff=lfs merge=lfs -text +open_circle_purple.png filter=lfs diff=lfs merge=lfs -text +open_squiggle_white.png filter=lfs diff=lfs merge=lfs -text +shaded_squiggle_red.png filter=lfs diff=lfs merge=lfs -text +filled_circle_green.png filter=lfs diff=lfs merge=lfs -text +filled_squiggle_green.png filter=lfs diff=lfs merge=lfs -text +shaded_diamond_purple.png filter=lfs diff=lfs merge=lfs -text +shaded_diamond_white.png filter=lfs diff=lfs merge=lfs -text +shaded_squiggle_purple.png filter=lfs diff=lfs merge=lfs -text +filled_diamond_purple.png filter=lfs diff=lfs merge=lfs -text +shaded_circle_red.png filter=lfs diff=lfs merge=lfs -text +filled_circle_purple.png filter=lfs diff=lfs merge=lfs -text +shaded_squiggle_green.png filter=lfs diff=lfs merge=lfs -text +open_diamond_purple.png filter=lfs diff=lfs merge=lfs -text +open_diamond_white.png filter=lfs diff=lfs merge=lfs -text +open_squiggle_red.png filter=lfs diff=lfs merge=lfs -text +shaded_circle_white.png filter=lfs diff=lfs merge=lfs -text +shaded_diamond_green.png filter=lfs diff=lfs merge=lfs -text +filled_squiggle_purple.png filter=lfs diff=lfs merge=lfs -text +open_diamond_green.png filter=lfs diff=lfs merge=lfs -text +filled_diamond_white.png filter=lfs diff=lfs merge=lfs -text +filled_squiggle_white.png filter=lfs diff=lfs merge=lfs -text +open_diamond_red.png filter=lfs diff=lfs merge=lfs -text +open_squiggle_green.png filter=lfs diff=lfs merge=lfs -text +shaded_diamond_red.png filter=lfs diff=lfs merge=lfs -text +filled_circle_red.png filter=lfs diff=lfs merge=lfs -text +filled_diamond_red.png filter=lfs diff=lfs merge=lfs -text diff --git a/assets/filled_circle_green.png b/assets/filled_circle_green.png index 5dfcfe298fa415dd0e92cf4534771cc2cb14d96d..da697aa81cf620ce9d671f536bb7d6c16f1bf4cc 100644 GIT binary patch literal 128 zcmWN?%MrpL5CG6SRnUN8S-wd(uz)b5l5sHytJimVSAFxCFWJ{R`B3UU*6q=F``PR#KN1a}>!vq4P)8y4YNew}I;JTxc=+Vo)PMiY5cL5G~q}5L*Voh(x<3AZof< L5InwBIsowlc^M{C literal 500 zcmeAS@N?(olHy`uVBq!ia0vp^HbAVv!3HG#UPw=3U|`(s>EaktG3ROj#oWUVJkFEX z?sEG6BI531?UL2gR1P==zJIK8)1hZi|6&z~^Vj~qef{|PH>Vd5-hV%D{mQUJG4K4F z-FFVodpoIIzjVWIt-}9C?7QD3wab~!=v~OIXqn{mWhXxFx1H;SzWdwX*c=>Vj?RH_$J|gi;#Wtwp0{^aeLb7WFlV42!;-Tnd|6-SS$p$x$ z^JOP@PkN@9H2dnh^mnVD{Jj(2`J118v)dG)8J+37*OXZn-#yA_n`e+O4AQ*le5ttg zmmLT9_yRTeblP2yeRJV4+h?k9$VhYcdf(li)YmmfrauVcU7$-lv~nwKZ*5xT)-6D zvA=)E`bpo5<5l0yuQK?UGySSw`nugW7Pj-ICBJa;=#vnx#mAjo`)>7-zuvMwHn&yZ m$Gv;N`DO33gDc|O;-6lNs(-k3%Q;|dGI+ZBxvXiYLpEa`W8R)D%m04X zrR^^x2Q_nn+6QXs#f7*vt}76dZv-pYoC)vXDrK$(JXC1W2OnJwj1XOdEaktG3ROj!Q8_RJS=Zl zee%#a_b$ z`M%{$-&4J^`EGdU@9CB|O2w_eY&e+16U%W@FnQ5=eB4dvYp3q0|8;QQ+fBD(&z7Cs zyTh; z-uI@O@C)8vQ)XKnuloM^KCe6V7Bfs2`P?h_x4E6V_4LfwdSx#Pn=5C7Gz-_R+kIo< zao%USK+Q=$Uv|DrYL_#gvAvV;T8H6Hkml?D#~9(7ch7n|sa&2eSBn_^WaUXXP=K(<>j`W z`-0=G_$a6@5TldimW}gUijgqt1UVEaktG3ROj!Q8_RJS=aI zU2>9JY23eM!m&wrSBv~skrr*4F_|0VmVF+C-gkA~f`Agin1b;bRk6qMk>Qu4K z``%O&e!<&o%500{Ro_3~=XIyvVutA=pL^y0Hn&r^o}T$yuk1x(bLDK1X5rd(yKgK! z&igDEs5!~!%g%R6?Q-Tbws-Pf>oB|t(tO?j7$aQs?pbdqmCN&~y@8v*d%n~C{mtqZ zS}*YLdM6~iMlkussjc3Nx7Bd?}FEQ7Y|A)+T2!s?(ozuRA4b*_K$>8bg=d#Wzp$Pz7F6e~- diff --git a/assets/filled_circle_white.png b/assets/filled_circle_white.png index 3c7be0de2f78f16f07b060d3d22fb94080cf79fc..9fa8f31cf316dfcc5b6ae3a2294c50b34b877da2 100644 GIT binary patch literal 128 zcmWN{yAi`63;@ucDOe!Je1x#KK_CKmN$>^iBGbp!Yu?4*(fUW$Igha`^=$L;Dr32= zCoQSJ)i^k*ON-vJ95ov7J7V@2fXGGM*po>cxJc*&2j^3WMjLNUA>h&hovJUNu2N NTZqJHKb8Qi_ydy;Ck_Ar literal 550 zcmeAS@N?(olHy`uVBq!ia0vp^HbAVv!3HG#UPw=3U|@Xf>EaktG3V(8@2sN^0?rrr z{MEOz40CpT?D?O^(4Tp`*8=aU_WQqlc0F}a{?T^Usq@*t=U1+`j+l}YvMTm_D7&=r zd9S^{)?3c#jTd#1c9zYUi&2>`B~)3^4jEQu?KC-4W##LbtG*#{*7DY zy~KsdtT%y1h&0=7i(gQ2ykVZsiDT=z7D?p1RrfN}y1Gt!#Tstg!$EsXT~GGROkaBM zYwul<4dv{cZ#(#(o$hkdZE4l(u1)H@bvg`gwcEHirKi4HtGz3AanRdc zcMneQiFWW$J$7bu(EDG<&g^d5Ex$*3MbrdPXc*o|{>|D|&hz4A6Uf-EgL1d^1NJ04 z_=}|gtqtVa_DvXQR@Qaikg$h+3pVk@R6vc%n>V%UtGw-xNs!P9{FX8u?8=nEaktG3ROj#lph|JkFEX z?sEG6BI531?UL1E7i6opIIr5GsUG;p&ZkRd!h>JmzJ4sW6x99j{r7XxTFI(~G4pP| zS7plIIooVQnc&2O{Ze<6jdg=AWG|`l37{;cN9qxi^8QF07x~XW|n1$MNi@iYV*V4*NqA z?k)K9`|w`tw@Ot~`RO-{#Mz$7s4iLlv22=P`7KwMS+ft+EMD?)OIg@Kh(+QvL^t1! z;QywPx@P{by(bpe{y4Dapt+Y6$RZp2vzyjzHE(2nuAyk#yM1%dj>~#Vms%Qi_c#{% z>LBcx&NZhsPNQ4?nojrft(&>NSnF)~wHIvWi|an_Qj2u{El7*BSvxm$!TpDgt!08B zvvPLsj!rn;0d%L*S!bs7kAF-~Z@T6u9Pu~q$wj-Ggs`?ajk7XKd!8?koVK-W*8!*9 t9UjKH38$y+p3X6+weC4j&p(qtOs8H%)z{s3Pyc=f*VU2a|tYQ1bUmuiP%JX;DOAqHMN9C{RbT8k!nd^%; z>oeX{`|a=SzO1)s`Ny(py5)%p=K`Ior1H}x3zx^bEZNC<#@tKFKRaC%Vo`l#q~Yz} zuL=D@$9}E6-)(cNo&Stf&Eh2>iw=IitaCc5S~#MhPw3L+3hUDy)^C-Rd?juik`}ps z)CNxPwA44N`csU|IIqtZ%rDnzIT;-dzd{f^+oHYGl8cn>Sm=zW-sT~ u+0xx%a+z&g&d%yipk?Lf4!rO`tbhGojQz1gC#8Tf#Ng@b=d#Wzp$Pz*qup-+ diff --git a/assets/filled_diamond_red.png b/assets/filled_diamond_red.png index dc5b117d1addf30e78cf0128376589a0ea7e5a70..6449a18f35d15dbb500f248f404e49819e6ebf0e 100644 GIT binary patch literal 128 zcmWN?%MrpL5CG6SRnUOpy9=ZnSWuWz$+#p3tJimVSNrgoZ`s#6cvtE%*6n%c?SDVZ zM)RfkXrwM9=BSc;wt%}f-dd<3lJ-RdfGrkcb-H1Q(G(;DzEN;K#gH9_k_j6okERAp LRq*&W=>f$LQwJr$ literal 456 zcmeAS@N?(olHy`uVBq!ia0vp^HbAVv!3HG#UPw=3U|{U`ba4!+nDey%VCi849_PtN zcRBIT-Q2$J!qF&)_Y3>WJf@mGRq6VFaES*K=eqcOdHd)i?hcRQ z?FVkTelfXsZqw6u9}dh){kWwptg)`0HEh55>w|JjdH&9N>ES%(sQeY3?&VuIbA9n< zea3rgzx|!vm-QAc|5!Fnw>&Z7T%c2xRDQZ-;qq9QB|ACKn0rb2XQzuoEUIseG`!vW zHK9M~*sqoMyKQc@^PiEbS-b>f(ZSD`bxucB3r7_630=BeVST#8`mK_Zuf&Z*(jwQ7 zTte8f@<8N^)=fVW&u*%SvR>`5|1i_)``sWj+v?7iEKxl5h(BxE(aX0YS%1mOMP!Iy z1erB$_iom0Jv%PzDP6KrDG)pFzgZ{ytx4n6_pWkp53{GGzG%I4Ch$~6-K^Be?B(1# tTe>?;F0*aR*;(BQw57YUQM6#-lgKH-K1 MS5h**ticEM1F4`U*Z=?k literal 523 zcmeAS@N?(olHy`uVBq!ia0vp^HbAVv!3HG#UPw=3U|_uD>EaktG3V)pi$%8`c$_aj z`)|L?wz;Q#$(k97Tf%~lem}U3kxA(9H}U$o4w*k}pN&?1dcN{^{_nb@2d~|#-flZX zbiLCPgW}!Io)>p@yxX+h^2UsxI$D=L{$soaR2uY3@3pe)Yo%SM|D8B^ZQA#Uk6JE# z#`nt%wBuSmW+wXH6U%EHlr*pL9-BNaGSQP)Zuy-3Dg?3Dly!Iq_r>mXJzNtH zpDEcef4*3)3sl?6ev!4^FZ8VWzI|P~sDFio?6Hp%M6dMPB|qD|!sGaF_Kbt)^+mh= zA}?JC3o!pWaZ#z@-PGmH@)PWJ#WaoAoV=ZsTiFlxXt3O#qh6=h&b^m>bhQ9PYVF?Z zRy(>^y*#)iBi3cPPG*Moirw!LKqdpNS-v;k>#ObB3)kPVf&vI)L;2r>{GgCH#gqMM zTSWHz+S>=C*XX_n`AH_N?#TnaSIg{zw&*R|{U(>sEX}UFt7K1o!?vDPd#3C<{mTOq z&elH|fnj(e@!2-^d|(*-7G*CF{Jw~Nc6?j?H@*J-jyj6ZfRW7L>FVdQ&MBb@0Kt9* An*aa+ diff --git a/assets/filled_squiggle_green.png b/assets/filled_squiggle_green.png index 8ecc86636c7b7f5229f393a0784a3b8595fe67f0..19c4faf772bce0845bc40162947e7076e196dc1f 100644 GIT binary patch literal 128 zcmWm4K@!3s3;@7;U%>|~5JJHIh6WI3R5}KG@b&6xFMF1k^zl?}&OZ+%|wRo0*F zy{|kTT8_f{w9DvONlV~q%cf#9jv-=9sicf`F9eCek_$d$^%hx^dzILzg4MR2Gs%I>lRHpa)tf*Y+|6t#dO1>_`R-Kc- z4osOf{nwO~9}6a$x9M~qR!y#o`z3th!9ISe%H$K1EMkn(ri-tiJa@OHvAoHrV-r*h zcRX>vf70g5-ZS=}7oIP%J;9fnA`o3amoHb?}Y znDm30crU6mt4?P>_B!Qx-aN^zDQ}m(Pm%j2SKR*Xpk|8aHu*_2?6`N&t@yH1`^TiM z+m)>k%xhj{*{E~!sj@K8{lYu+3+FW_`6zmCvNKrvY^j~9B+z}mir$Y3PR^J&{U3|b zj`u(hN^DZ$o8EKt=~0j^=gzSA?lDa9l+ly?92r;hV)KUE2dhuY+qK&K-|$NRaQvmc WyXtk=oqqt69)qW=pUXO@geCw@aZ5`8 diff --git a/assets/filled_squiggle_purple.png b/assets/filled_squiggle_purple.png index aa100ac241060d109920b06d32afb3f3a2db4718..703c122f4af4eafc4b5dcf81405d66adb1eff5dc 100644 GIT binary patch literal 128 zcmWN{K@x)?3;@8puiyg}2w>3PUjtdtu_7-nYbFlj+>(e>Oa^Cm%_I3X&e>?qXumAh!+qx>A$VuD( zTfSdfx8wWVGtT#u{~6iO+0~>US#74we74lC@wd=(OO0b9n^ayi z2WQ2-3ZC?^+3lXhCKbNvJufR?`YSa5w##_ZtLXix;N*j`^b`6`^}uQm#J#J&t@%Ovl4DLj>R zHzqd<*&BS-G;NMDYO`s#lhlah_o-)+-080?={(O_*hBZ{7v`Dm`=(cZeO$V!*!+A? z)TXk_1rxU)m^=gMy}1=%kUZyD^J4Rc+Xp`%PVxbU z4gV6Ny*Qs|N{pPu`pI*5SEgN=v~~8r$(1jv&&b|lUp_(gW}QdUFP%4Kk1j4>_rUww zy}maL)qJa-v20SA-tV&l=>7-$j#Tn>8Mf-2{B>Z;tm(g|r2JSg(Y#Hk^RQ}iRopM( z6A$(QJ(zrAl0}SB+H`S{EtbaeCZCQ?P%Ye%awfg<imB{ z^UVEa^(bsFZ+eqS_p|_RD}y)@DdZg?1aKZg$pASq$0b&Aj0{l{$=!#HNR^hfQuTqb MdZX=ICXB230iWL|3IG5A literal 673 zcmeAS@N?(olHy`uVBq!ia0vp^HbAVv!3HG#UPw=3U|`Ddba4!+nDey%V6Utpk8`=S zH@D@Ib268lq`ZG{T)2?2w|Ik^gWWe-pUz2^^S;O5ulrN^+v!L9{{R1euB+mSoV5MF z<@=>|JHF37<9t8)pOO8XT}}Ft)z+Js-&n4gC46F1jGfWKXG`rGe+xag)Ho)xN#!+j za8}%_;7Jdg-R?G5VV>E(Z+hj|$EBN!&CmBl zZ7RE5Zp2^PztdTA!6&^3-g`7|PLe$l_f^5}OXQ8WM;80X9-O{ruk206Z!#^Nr>vWP z3$c5J*)N6pje~h=xzE`J(|T4`uJre8wCjc&9~|q%O;iS{XQ#z?tifFNF`sFVXMx`Uk9eln*M7_%8vyT&D(T35343u#r+aK z@n9d&gUKf*S;QEnO&15*VreXI^6A(F)xsSqXVNP_EtpD35 zu4z2AoF(bYETd;7jRF0UJ%#G>W+Cpi?1>#3fNV?Itc@H40up#aCNgNV^VNWhkqp<& M0T$`sqP!2w50I=T&j0`b literal 668 zcmeAS@N?(olHy`uVBq!ia0vp^HbAVv!3HG#UPw=3U|>r2ba4!+nDg`kW8Px}0q2Wv z|MKts-PX26)>@OxQZMTXb8ouGtZBbKir3%ki21?%?DC3J_WpO*zukScb#3nb!+rJw z*_PjG^>WVqku2JG*s6kgVhY#B>i8eKD{P+!ev}i}3t5u0cr@uV0X~ zd-eX?F*_7oZ!1sY`MvV|u5X8~ZF`@1T)tzgjJ4g*g>f5ZnG0B^cwCRYG2^H4lbZI@ z4{S;&MUqZVTvoANS3=WtCm&N za<<{-r?z)zKc3)H1oc!O6x)Jizx>OF=z1sXpGWy!AT7FDd zS;g&8I6FP!taOKr(UOd7U!k*=TlD3P zItT0CRWe?8Rco)k(Oz-m-K+Oz;(8tzzjc6p_OAS4lg!=((|m=Z6BFK5J`BB*D{i)* b_di3<{rCH0US+rdQyqh+tDnm{r-UW|mc2;S diff --git a/assets/open_circle_green.png b/assets/open_circle_green.png index 83a315a64ba26248a135697422878417f1197304..41fc0bb885aa6f107bb88e47f5ac984f59ddac89 100644 GIT binary patch literal 128 zcmWN`NfN>!5CFhCuiyg)S%xLQVSo{;R8kJ+;Oot)4}G=|kNK8;t%G-^9%J2}#M@>6 z;#THM@zIJpwV0zy?%9Cf6V{5_YHO1#8a)8TR*kXFmypnf>wNZ+fbJ1AQ7xg>j7Zs8 Mpd@(wnuHL=AD2oeZ~y=R literal 578 zcmeAS@N?(olHy`uVBq!ia0vp^HbAVv!3HG#UPw=3U|{0(ba4!+nDey%qOVRMkMqLS z*AKmJ-t?kb>;+eiPNj(6=ZUM&c=dd%>3O{7&Dq+&-#>o)`pMnU0O)l?3BQIgIhp7 zkC;`Hv*eAncKdExVK4Fa_yyIEjgt(s2**PGJvzb4c?(=$C>Gn?Ib@uu4<-M^YI*73v&$!kak|DF+eGk22f--8+UZF-&j zQ+ig`o>}q6?Bt?<30vfyrypVWI<}_v$C=oywx19A&#gNh`7P&q>RG!l2f<>IMPGau zzE9*&b4%UsDK@oqehN>m-rh|CkC$;1`LXN8;K8-%+hbZ z`7m?$6`svcUd(p7zn((p084TT`gsB{c=;py$_ZQjWr>Eo^2oQG`2Jo>ynt1Or8 zyDxdXj2xWJ32OABrKQz}4KZZD13C{C5=O2>YX(~a5C+1+5YZ9^BunMmcVdgFItR{D Ms7m^ewU1H#0aqs_W&i*H literal 577 zcmeAS@N?(olHy`uVBq!ia0vp^HbAVv!3HG#UPw=3U|{0#ba4!+nDeyX(ND*b$N6E> zf3Et2mXQUldTe#m?r^#42YL0oWZzpPo1WtT>g(hCx38ZTe#rj+e@*>Wn>M|Zr{mx4 zzT3R{^`^A^uL(8J^h^)e%w{)Uyy><|_pj!Qbv&^`@*0xCzh?yA%$?-=_h5#7n_egX zl%AEfXI8v1JGtmz!WMbw=||YTj;*QvaV9pa?dL=ObL&n=e#^O@de-jCL9ke4(HGx^ z?-Tjc+)}rDicKw@pTbkCw|7&(Bj%Z4V^i;{OFGZ@UavFdheKLO+3b|S$nTy$WwF=R zcwb+-#~UZaPT#C!4N+d76!3SS@1_-NkX?3U!LM47 zQONG^bo}}o=;}>&0Y+(W52wEiGCpIsNzbT!rDWR4LWPv;Pj#xd0fVC6M&iRHv-F#9 zKFr*Gg=h1V7qgx2uV?pP;EmVC$1Xg-q|L2rH$ighUA4%NYqdg?W2c+GzO-wO!}KRV zgyDWz$lvy6*PPUwh7^Qy7|4t@H*eckFx8&_nQ+$su=!il3-P-@%3J{^4F*qFKbLh* G2~7Yaff|7T diff --git a/assets/open_circle_white.png b/assets/open_circle_white.png index 0bc15374b5012b495b3213bac5add75189907f51..8717bed168bea5e4f1eb3d9c2434016f43b618b9 100644 GIT binary patch literal 128 zcmWN_OA^8$5CG9Vr{Dqx!vHhnHhc!5N+l(jg{PNQzv_!WqxH9}bDrZ+>e1%yS;n?n zzi~_brN+rgUAyQl%Ta^2?$D78IwZ%0ks$D%5|GC`GG+h|-qU(eY|)&Y&Lt2m8f~-X Mki}>}mIkf(1Be(WEC2ui literal 475 zcmeAS@N?(olHy`uVBq!ia0vp^HbAVv!3HG#UPw=3U|?M2>EaktG3V_C$GpQ1JkA%t z{cF#gAL-Ee;OvdAMkzz{M+QH(OnEQ=>zBgQ2lnsinVv+l~DQWD*ud#$9C+}m771VZW1{hSHD5y=BfqO zVOvgzvF5&63e@_pP2}*leJiiTmK#*>5|_HR!Y)~-6k^29%X=?uaQiAb5u~TrcjcPa zW1E0_r<~bbx}GD5=l8dLWd_l8p%apBYms_Ctj822()1BdE@(u(^)m!YGvR26&Kj8<6)Q+T`(ERaXHo% zlb^4+umWn??O)4+w%b=Ig>F?K=*&Z%A*qt3FF)Jd;RRYyeSax?zL09PXvy&|H&FOo zm$#X?>s7M1zrDT!~dR3vu*G7gR@;uf&%9)-#m}I?Q&=8d+Hb) X^x4npDatefBaOk+)z4*}Q$iB}h;-XW diff --git a/assets/open_diamond_green.png b/assets/open_diamond_green.png index 1d5915a0f75dbb8b258d69ccccf7f327507373c8..10d92c633603f6a9d77a57b50b33f289fb22cf5b 100644 GIT binary patch literal 128 zcmWN?OA^8$3;@u5Pr(H&gg?DannYnnr6aTpPp@zDF8Pes->S}ej7{rDo44nEtpDq| zuhd_9976hnr8iciq78A2DC8Mqp=2C{lE8vv^2Ir^iK7q9gqhiASEAr<5=$wN*;ob) L%V=Lw!IEaktG3ROj#lXW30?wY{ zTO8!4xXN#F2;ZJS=8Sj-aYM!Z%NhPn*Vi`N^TF=Z|@I&n_IH_*y;Lx z-vwH)KjDkMF>ix^l+yo#R!?OO^|uDC#p?}y>z3Erd?|O#wcMp)1UhDP~ zH-*1>dOx|pW`k|w{4Gc9Do@V3^A4oZJ&OJA?X?B(OqZQ}U$p+B+xKG^b@{JF{BgX* zacbf<$M4Iyw1Xd?m)|#Sv-+FK({8BiM^4@y5mD9KSbIt6_Y>9VCvP}^FH!w;p6m5q zwz>%ceOvfS`c0aOF4b{oPus?EX2Siaaf^NLo!)!Qnfzfm Y>vyUCX8w=kz}RH)boFyt=akR{0DW2VtN;K2 diff --git a/assets/open_diamond_purple.png b/assets/open_diamond_purple.png index c3e92f7be687d89b00dca914191bea60d2ac9b61..b7990763ca00c842e36646989f057155c7c45bd9 100644 GIT binary patch literal 128 zcmWN^OA>=13;@u*r{Dq=h>?%C!2}93ZE+fO(bLz}n|I}}wEj_bj6*i9pKUx|MdsUj z?lbkbmLrqC?9>}8sR>rMF*swHcT1jlDG(@d2_6mR#YZfOEF(m~LI{+cWwS LI7$0ug)vTluLdWS literal 499 zcmeAS@N?(olHy`uVBq!ia0vp^HbAVv!3HG#UPw=3U|`(k>EaktG3ROj!N9`-0?wYH zGAmkNt!QNqJ^1Q;$3%7ght=2o3O@1O+p3bk=<@B~*T0_@Hsq?W+cPgKe{r;F+`rFz z+coy6mESn@t)=#o(9d>lA1O!6%y!K=)xDXYtlvIfIQ`PC7h%1Hd)%aVxr3z2HTSrl zo43I~O6h-E>s!v>OH{v|^uG3_Odq82lGTfQd9B6k4SnmTSNEFjGVjZ)+;Hp>|0K77 zzAb#a%tIq)O4a}Suyu}Y;`}W~>?%*rx^wiYR`tgft?Abd16f#+W<}Rq-Ep7%5oZnAWvy05N=j2S>tPXVW ziT&OWBVWh?6)llnR)BC*HZWX|eU!?DO0Cl8@?)bL+A^V1q WEA~4gzIp>Alfl!~&t;ucLK6VGZ1kT1 diff --git a/assets/open_diamond_red.png b/assets/open_diamond_red.png index b0d2cb63b93287ef6e82fdb0d37102db658be5bb..ec2555017c4ef6686a37b1f55d298f7f226a0edc 100644 GIT binary patch literal 128 zcmWN?OA^8$3;@u5Pr(H&pFoA)20|jtsB{c=;py$$ypulC$6K{I581VT^m%)-tk>;Z zRva%a2cbUgGI~|gvJ2a8iSIE-!g_7MWq<%11aCMnrR3Pgg4U;s#8`4Q!564djJ4<~ LFVcUcd`in7td=Le literal 499 zcmeAS@N?(olHy`uVBq!ia0vp^HbAVv!3HG#UPw=3U|`(k>EaktG3ROj!N9`-0?wYv zTMjf@Szci3J^1Q;$3%7ght=2o3O@1O+p3bk=<@T|zrUXrHsso0TRSH!e{r;F+`rFz z+coy6mESn@t)=#o(9d>lA1O!6%y!K=)xDXYtlvIfIQ`PC7h%1Hd)%aVxr3z2HTSrl zo43I~O6h-E>s!v>OH{v|^uG3_Odq82lGTfQd9B6k4SnmTSNEFjGVjZ)+;Hp>|0K77 zzAb#a%tIq)O4a}Suyu}Y;`}W~>?%*rx^wiYR`tgft?Abd16f#+W<}Rq-Ep7%5oZnAWvy05N=j2S>tPXVW ziT&OWBVWh?6)llnR)BC*HZWX|eU!?DO0Cl8@?)bL+A$!8y W3-Nw`=T`$Glfl!~&t;ucLK6TW_4Nb* diff --git a/assets/open_diamond_white.png b/assets/open_diamond_white.png index 22aaced3dd08c9aba63caacd19c933c282b102a2..cdd11587c52a0718c30672579c4e90446c2e6b8c 100644 GIT binary patch literal 128 zcmWN?%MrpL5CG6SRnUNeu*)yqunPz?DjC5XtX|*cUFALdc*(ZbIS-}oecc{)ZvWed zHXctk&%)~3#pqeimW*`=0s}asDHjcTFPUQ{M5@X7=pngW4KO1*Pc`e1f~5qwhZ-3R ML^1ofNNZ920Hf(AS^xk5 literal 554 zcmeAS@N?(olHy`uVBq!ia0vp^HbAVv!3HG#UPw=3U|{^{>EaktG3V)pKtC2k9+toz z{}(i=9NXv zyY^^o;;Y@?>^gC6K=-^CcI?v6-)!zp|2+4j9s6&QMJK{mxcYywW?wD)eFaqU-(vRQ zr)(vafhn@PY(&>B-gbBQpM<~^?JJAayWX(8UT1y7B7J_Y&FuF*#osKC?Rw4kP16Nz zxW*>oHMgxJQeU@Uo%ao9TI@Wo>w&l5+1f_Lcq18Fc4zS^-WQ)1ov~Ll->GRE;P?! zy147Lh4s%L#IEVCg&0^ezqz;g+s$K}f1azD-(1TD3Bz6Y5r)*>Z??|5y|=#bgWk2h fFAhGN{!sXrC;Pcmotpi?G{E5L>gTe~DWM4ft$z>E diff --git a/assets/open_squiggle_green.png b/assets/open_squiggle_green.png index 48500d01ff49d502b013ded0a7962ee22a68a190..9bb86ae32d322800a9e7541a88020639373bd573 100644 GIT binary patch literal 128 zcmWN?%Mk)03;@tORnUNo5I%9c2_XnGDm#LEuzG!$cglPA@zQOrWA4V>`?@^p-2S&u z-grFCJcP|@)#ydfMlQtNGw}^7LCRQtatNu$l93`J$0}Frb4dspT&&((2tr~*W=KF5 LM9uycoiM5&sMjYw literal 786 zcmeAS@N?(olHy`uVBq!ia0vp^HbAVv!3HG#UPw=3U|_oG>EaktG3ROj#aneb=R%kf=)8@YGxt(d;`eB@EFG>|U1dtk<5t&wH8l=K62#b3@;#y64#$#v9uf z?Y@0<-|6@Uf(P6%`+%4{&{lR@750`-~D+$}!fAapS8!w#uHtKub z-z>0_|H|__h3!|~c3BsTTHkw<5I-etq4B3@+(q-h?7p*pXXJN}yCwQ*Rie?m-&ybU z|26lwM(IQ^IqoHO7iyFCrB$Wuac%-SX7-sc=d`{}QZ}DIWBts1T|pVdF1Eb}J$({_*-wpE55Vo;ZQm8uR$m~1T%KGo;C*1#$xcf%y5q2wZoP_3lQ9OP_eChkh zjw|f1ir?*UepPmK?#?dR{IU(;(ArtE084{1lUQ~ILGyiL!5CFh?Ucm{r~^~ literal 786 zcmeAS@N?(olHy`uVBq!ia0vp^HbAVv!3HG#UPw=3U|_oG>EaktG3RN&W1om456i<) znF{Xpk9B1#L|q~_g}(jPcO|s@NY>*EFMX;vRqw0&|MBHaQ%9>&}6uT8Z(ruXFZ z|2y9o{ww%C_m2ACbAQ`^9zLh_ZIZJ2{2A+K{tGJUiaqi6=Av2w^+M3BD*L2a7Y)8o}swW-EGgwy~dwD{p0-BE5EH9XxW0zU9~>{!j8Jh7xmNz z{+ie7QMvtUPSvbeWw$kJOy~5<0~zZieFaMWXpd z?|b&_sXuh<`I;ndW0h|wI?Q*LuUi!I>G+fU&^M>~E5I`HllO-Ly||wBF>krY9+{mF z&cz(yMepDdX?^Iqi9 zxS}V|kX<(e5-t^uo4a(+Ot_(}eDBFU$;!(AEWeNO-#)6RVs`-&CrOL>EsyQfs6Fqr z#4ccd@p0Lp?b`3ogubcR+zbw_6Hl431W0E5n^k(K6UAA6*!@KWJP13%! zU)~or%M`bZzu)xDa`lZvJe{^ik9^7u`9{8=l-&->G`Oz~sm z3B$eqaBHttWSr>V$SoPa>+qHIYqmk=ce`iC^|rVDk=Q-q^l86})%wLRcc<(!{5_$* jLj3n5e&c$ne@wnFr}(W~>Hi*>))_oq{an^LB{Ts5Jy)I$ diff --git a/assets/open_squiggle_red.png b/assets/open_squiggle_red.png index e49d9a1791e8bb8b39f72ceea5301dafa09dfb94..6f28e5e4c74a5faae3f4242eda908965cdab56b8 100644 GIT binary patch literal 128 zcmWN?K@!3s3;@7;U%>|~BoM;%HxNLWQRxWw;OliSdzJU>IQZ=cZ%rmQ literal 786 zcmeAS@N?(olHy`uVBq!ia0vp^HbAVv!3HG#UPw=3U|_oG>EaktG3RN&W1om456i>k znnvdLPY#IxkZ_6E6#DjC-<8nrBUz6xy!5HwRK4%tuWygfPxp8E^YH!t`npuRV|q_c z|G)En;lG0KbML7CJ@>c$=izf&-zF)W&!4e==D(nluGkZAkM3SmdroVcfpb!SPsQZw z=NmJ`cTbou|Dk2;`N*SoYW1s+IXl<&#Cp^y6#2Zr{QOQ~`<1s{*2SiBQlFCFI31h* z&fx3J(*7&H-;gZ}w=DYH`E%CG ziMQ|SeT%hwBeHwK4~KNo=oyL|-QD(_+-v;l(?8B{z4F_-ftD@U+*RxIFYKtBd{Iwr z;IDbD9<>YXp7&WV$qT&~9t<^F0}wc+K}H*S^Q zKUsU}{T=s}-65YM6uvgU6aH*^S^2T75Xdnp%gVzxPM6vF^GMCvFQHSs;$|prUnH7e z^uA}$p87+#p07#bHdgs|qQiV=`MO0RpN>Dt4}Ei*zXB{HKY4#B(2MI?AM=)b?2*~| z;9ShnK6C3YcD3hZ%RTO{+hGg}0e-dqkU&sqY~1>K-()n`eY`M1Jk8@m`N@*WGw($n zjVpTc4B2%vAmLKcxVcOB%!C`t%J-h!ldP=#&+_{i|LvoCDs~qjagwx{-}2Z#joR~0 zOY8#X7ax}m+OGZXOz4}6&CTG@I`NblOMqm?zey4|+Q-59OK)bL(Pit^H@y4q)Fkao z`{jL6vrKWj`1?)YELYz+#M5bO^vL(!+~bR4-#Eq99T2`|moEBy#-FuP{JcL6%M?F0 zo-o|&54ZMeMaGH#jogy)yAEGTzh)a`ez$vOTyJ~ZABo))PM`LxSgl|Da(Buu!`~C? jE5v_4;y13B`p5KU^Mt(C`3+^jw9eq^>gTe~DWM4fl;5Ed diff --git a/assets/open_squiggle_white.png b/assets/open_squiggle_white.png index c660ce3443997e427baf7975e35753276585382a..659577bad5ac5c73557d75e70aa731024b6f58ed 100644 GIT binary patch literal 128 zcmWN|NfN>!5CFhCuiyg)S!NjW8)bBe zH*I;m)I2z=Q;X4yoGlu_-6bC}00LRgNEjTJV(viRF-41-YSJ7aM1#?VLdNL|tf7+g MmZF&b$MS084{cf|6aWAK literal 694 zcmeAS@N?(olHy`uVBq!ia0vp^HbAVv!3HG#UPw=3U|_2Cba4!+nDg|)#iH8=JT4cX z{kPv`dxuZZc}jBhN}H=s_BGsyJ4%0Z`@(M<-MYr_F*ER-ZN%+gx^I36Z=9BVT>bqk=CIFdO5SZH_YTh6dL3?R zd9nM(ced>Q9#6G*cU+nC{O}*`i0}8B=O4{Tn|f<`jr8kt))AiXXMPt8JALoasX0aF z#VoIX9h?{cj{)Myk0+N-&id~Fvvk(-+`nRFe>x*hZ?xwR3wmidMe4$~I;V9r8^7iG zajtph>oSc;bJn-{weh+^K`&V|%P;CGnLht%@Sp42RlD=Q=5nsANfn+_#q5Fb8d z-_umO^}O-^g|(84XNKDGFPr{w=Ydu7;ZkePXqFqhZ&>&C^0RUq@d({&ZtY?(`-%mz zRZGP(qwN(^-7@EG`x<@Yqk59=@jidOxl`_c;<+{L;y-?IOq5%$!5&F#D1TJbksmprqPe-?jm*LS%; zI&Q|Ruh>1k9Z`PopjXxTJ=-@#eG?0NHf8rr<%sfk2bqIzug{gtea*h)jKKYzhRcSV5HHKj9cI4&ReSOZLfI!jKlAF&HYKSZ$HQEn@masuPgu1AX5wV#Jb84 ifopzOZ}{H-kiUNI@pJ#BHtqtZM+Q$KR5}K`@bvmN@8Y-g@zQP1Qx0S9ecm2bmjCUO z7aC6^CzH9H8og*~$wNGNbA*v_&DDj?S4=)(@ik}5;INQ~yaNGRjFxK%4rov0qg!)9 LVkP~{8up-ms9h&% literal 583 zcmeAS@N?(olHy`uVBq!ia0vp^HbAVv!3HG#UPw=3U|{0&ba4!+nDey%U@o&E56jzi zmz;iiM7~tkU9vi*j8SmXns%4C28nye&rV`E{^{@A*N>lnbNVR%ukQbz%cm!D-}$%s z{mXv^x8J7it6gP(=lm=6CuhDNUL>`%L7wH*%i33wi#XctrEW}B7T+K<P!~xAR^v!UU6MUjDYs z_tgPIc47S^mcelmbubw|)^Fz5Q z%J+fJJHh(L;j2zyOYjfPZ!L&w|t&zSHX|Pjj@(RjHlsV zaA)3K^n__zb5UA6$U(;U`Ma~8Fx3fYq(9BxefP|E|L^VE6W^QuH~5?SiCfOFXwA!; S9e05Vgu&C*&t;ucLK6UVjvEF5 diff --git a/assets/shaded_circle_purple.png b/assets/shaded_circle_purple.png index bd9a247a09416dc163391ff662f7baeead080e31..871eb84653230d863afd75abd7e7c01722f93981 100644 GIT binary patch literal 128 zcmWN?!4bkB5CFhGRnUOp0D&Xj90v$9Dj6YpSiSCNukx9Fyk%SKn7dMszHZMtxBu-- z8;_ToM`3koF?yD>k#T;{H5fvI#4%8gCK3nmx&+V~kRn##$|>4_Y$<2D`@|N|mFh8O LBWC{=>ClKDv=k?p literal 582 zcmeAS@N?(olHy`uVBq!ia0vp^HbAVv!3HG#UPw=3U|{0)ba4!+nDey%U@o&E56jzC zpFDI|>TP{8an+=otS%m##3$rR-0?*n!MH zJl`y(Q@E zm_I~W9O&-NE`ofktTo*2yw{5`*$3Eqi#%MgtGVdO<}Y4~aOr|udFG$jF8#YnXs5#; z4^$^_SmCDkfSqyq+p^8OuKI!We{g5sUG#)$T60m={HkdhhaUE`l|4Pdsss0eJnx%R z6S*V!PR*y{v{AKz{eUtQ(oDG4y76a1< NgQu&X%Q~loCIEoW8D;q@pjoj9!&AbTREvBLf**fZ4j9w#<2D~C LFVerHVs^_9tQ{u| literal 582 zcmeAS@N?(olHy`uVBq!ia0vp^HbAVv!3HG#UPw=3U|{0)ba4!+nDey%U@o&E56jzQ zmz?BQ8uxFRaBR{|Ru_*=azd4iNfq+u-b^y5zpvlkKmRuO(fS{Me}DGVch@WUeSY8a z--mOz&;I#s<-Y>^)$=D9-{%JfbpnSU7x;e9a&iUR!J2cH*mwfJ-K zz&e?o4Nn)$xwm|tYFELJ#f`C+MU1B%EjO>9f7SoQ%=hiCrbUeQ92P)hufEL!neG1{ zZ1(1da#NJ=e_+0Pg7uHXSDnC?=2v{DCZ4~f-FkpO1Z4J#cMD{G>g)~TfJ@KWcKd8i z_RBpiw9lXb8{dU!0bo{~l(V(sJPYfy~`^*W_)5xGmFp+7Bm>Que1`>_Fxp zo^O`YsoxS(4tG3U!I^z^VfKpY`|2YaCJFqILpZjqV#6ZIob=M$Wq;SyIh|{(4(O{n z%pamG4s`cs7eT&N)*9}1-s?q}>;r7QMIJ8L)m-#s^A|5gxOBm-JoC?Mm;T)(wA0~_ z2da}dtZ>tNz|Oe*ZQ15sSN%ZxKe#jRE_%W=t+}Xbe$_OMLl67e%ATHJ)q#6Kp7+hE ziQEx$;OliSd&+zC{bk#n$5@@a_j!5fSpK)q zw$%OU#v#?6-t7HmM=Ka<1w|%K;TjZ5_5>m%2!b0a$E+egR#AqCnu!u6W?)PN0Eoq# K(Z6B|g82b)$|b-6 literal 604 zcmeAS@N?(olHy`uVBq!ia0vp^HbAVv!3HG#UPw=3U|>@Aba4!+nDh36W1qC4fb+#O zfBEO`DLB}+z*R+@t>dBMg#^*te{_GoHvjue;pw6H6gh6KdbvCGr>l2!cTbw@Rr+$@ z)z-Cldo9hai?)85o}jftuA`SVe4gR+lWetpNYw$>N(fF5pT}KB#MxU7mdIY+sD-U)330tJsq!YTR5IvVC2~ zX}_hrO7?#}bnV@-ns(Wpw=Mw{*WPdKeYh#RUE}bKnZ2yviyuy0Q00)kYIUaO(*P;}J*3)@s-rtzGdg*@F9F~-qn?0ty30V~#e&zj!?Dh(YdHWLd zE#n%GoypPJ@u}yp-0q@|_J=RIzfF29nsMgLu_o>FH{Ng5MpM|D{xyx_@;O zloh<^yDmyu4zg9(dg`l7v3!5RuL({t-CSn=%=*oVtJCbHx%2jaa0#$oU>E}ofK&DdT{@MrK$kF|D@Ja$G$NEM`)H{@D@(h3bP0l+XkKUF{yh diff --git a/assets/shaded_diamond_green.png b/assets/shaded_diamond_green.png index 27c6c1afdff6d6732bd560cfc60d5d926da71375..a3d87a71ed44697641d4a92fbdcc39808e785f4f 100644 GIT binary patch literal 128 zcmWN?!4bkB5CFhGRnUL|4me1<0qziHR5F5jSiSCNFMiKHUb3xq&O@ntU$;k{+yC~- zTNzI^PcG^*Vsw(TCGdD?a+a-kRM_u1qD`5gB(Np~$KKeA literal 684 zcmeAS@N?(olHy`uVBq!ia0vp^HbAVv!3HG#UPw=3U|=ftba4!+nDey%;zVgf9_RPF zytrQ~r!MW^GGU#N&6x|#H>a$Ped}ISC(p)tXu{v0Z?E^;%jdWJ|M333y}fC^^YkZ= zxn^6dpA_jYuiDsHHB6)o?4^3Aq)p6czC z`+xT=>as8S(d;@earzx5th#2THR|tlRI@ER>2P;ucF`wQOP)wP`TdGY$D)fZGH<^1|9mvu>$b!yu0m3{F!Ib6)^5A*xyqM~BDS0~2mA$)FfzkOTv_N#1iZ{RawjwG!5CFhCuiyiQEeu0`Gb|%isiXvR@b%i4zUq7S@se$=a~?|F`?@`NZvWdS zZFxM^JZn~$5u+D58(9xWAkD!*O@>Qlj|eW4jRh)!qdj?KU~7X9 literal 683 zcmeAS@N?(olHy`uVBq!ia0vp^HbAVv!3HG#UPw=3U|=fpba4!+nDey%;6!Od0p|CM zJ{{g@VRigb`{GR(S4fF!@T$HmlK-|+{tyov)6(yjwzJow%4tn7Q!+ZR*|cc#on0Y9$sLIw%y-i4 z%g!&SoKAjVzMKqqD*LZLH>S2u`o?~3t-@rv-6;#+-PN_6^m+06rqvfzBda1dOUHx3vIVCg!03LNyhyVZp diff --git a/assets/shaded_diamond_red.png b/assets/shaded_diamond_red.png index ca8b3e70df37335d9d26b7f88afb87311bb72009..132f33b6d67921b42fb4fb844189c5657ada9724 100644 GIT binary patch literal 128 zcmWN{!41P83_#I)reJ{v2w+3D!9WU9TcVoe(CN$ROHcnUUvB*)>KG^QQa;;wybfMx z>qTqoZ^>s#^43dlS#XV;gB>Vll_)@pWU@s?o^r^D6HRpBN;t6SqP4X_0eQ3mHu5^E N`A1y1{fYo@mOs2jCtd&m literal 683 zcmeAS@N?(olHy`uVBq!ia0vp^HbAVv!3HG#UPw=3U|=fpba4!+nDey%;6!Od0p|BY z#awk3e)e;kgg0MYAtkE8tNN};{@Y6VLp*FuOV7vOulw_}Litbo{{R1euB?>ar6T{o z=>GH{huw?*zm;DX?Wks3c9NmIeb-~j7n8R1&t3T1yT5W-mqc0T!S9A=WnWC<>3=h! z_WS29t$!CD@{3j8zMxvTGiCNVecNX$*JFnO|Y(-J4KF$&;ts=RbWFHo>z$)+pfnyJ<2fe_qt< z(BBF6fy3S1(M3oOIHkP%NPNP)l}c@~NvHht+mYPs?h`VP`Hc3e9o{P2-)DZ&xvBR1 z-E+~wMzb{X}dAHeJU}xNA=G8ok`;&Gzcv-AUR-rP?Q!9M_Y4@GhX-=Y+?t zNlzkS-Y1*?;}HF|~ElH}-356(-B=PFe8ouCC>z&x_YLt-hcdSrxHq>T2pm z+NQ&s_w5o*xs*Jer=Wa=^}I$s&)+vB!+!TY*>^-fu65t{KZj@CZ`=QF_l-R3prgBi PiIBn5)z4*}Q$iB};A&A7 diff --git a/assets/shaded_diamond_white.png b/assets/shaded_diamond_white.png index fdb17c6ce2a2e2909f4b6c5930368caa8ea850f8..3909dba8f2ea35d39cfbe74bd01662257c17f165 100644 GIT binary patch literal 128 zcmWN?K@!3s3;@78uiyig0)aq(QxXtnR63^i;OliSd)2p$`O^J757~^lkMs6uvi$F# zve0}QIVzdUsySFo-(84Xh1jq`ON{IY%U(GX_)yAfv7rYb$2o!}M#lvySx5<64&W^K LsAPPr#x;Jj@Ti z{*|x#-8Qe{+C{&Tz`fDZe>gmtSk~73X^YQqvH8J#<+i|7d;dH2v%f3Lo!R#0_cnet zSLuY4(Nh|~m8h#l3CB0CkP#`5o)>s_%FnVZGgL45?G`+nwSzg(Qsv$0&r^bX=NVO> z{_%%#b8g3~f-Ss-y60D^{BB2@=^dbcq3;I$xwqZB%nnT2uEG5FrJv6h zwS7#1mKy7xPF%#h;mJ0m3vurz%qnBKy-DBwr<_!{;wo9QRWpsY2P98(sNU7RP4V46 zcJ1X-wyEDv^8oGmZY#m+W*YoV3}lOc`9-rMYi(zwzBIVKv|l8*L3R7o#&1RKSGFkM zm{x0f>Uz&HPRWGMaLEk)at~kYCWu2eeW^9P=yfIS{f3^*kQ)UQNOsSRlpsxt#(NUvyS(DapAR{?i*A(-locH-eU01(`J7Aly7CG`v%?L zMN{4{EEHXID-mc^F}GSA!({xc4@1>PKdIwH(Op_ZIPNS#E83 zan=tmm!}JM)XzE&Og)19ajiSdYd8GL{lNachySiv+ucrJ(q!;-^>bP0l+XkKtLRB@ diff --git a/assets/shaded_squiggle_green.png b/assets/shaded_squiggle_green.png index 36b8b1f19dd10d6eb59ea7480fbfa60fd84f2f11..4c1a36b92bbd812f20728b4082ca32c5a66139c5 100644 GIT binary patch literal 128 zcmWN^OA^8$3;@tQr{DsXPxzSLrjQ`asO=c+!qeN;n|Ja@#{SlQ&O=sX9%J5~O_t04 zElb^BMh>p#bZQ@@rEfl_m4FZmAT`XcSilgn!+R@a!BK$dF_sjpPn>JL%Axt}d2_Di M(m=`hvCa|IAA74Nd;kCd literal 759 zcmeAS@N?(olHy`uVBq!ia0vp^HbAVv!3HG#UPw=3U|`zk>EaktG3ROj#atOj9_P2~ zE;;@3h`1~#R$@(APzt4YvCV3_I zp4w;orvEy8w>(w;tM%LXXZ+cGojR2TdoJ_nq{gjz=<(8QeF{b(j z&-}u|{&dcX{dFMX)$TnBTBVFYvE54+SxMM7Z@lvSQo2~vuLD=JK`v`|nQBDa_bk!bcYZGWU6FtvU?!>HmEVQ$^*4LXQE3ul^2OzjHE}`>dU3rs)1jH|!biF?&bW%y+zd z3>3z@-&~KG`N!+guFmOGj;4QeZd0g;->gTe~DWM4f;E#2F diff --git a/assets/shaded_squiggle_purple.png b/assets/shaded_squiggle_purple.png index c8d535bb42d01fbe204341f1a60537e94a8bbab3..18e59ab84c76520334fa28867b1613204a42dba4 100644 GIT binary patch literal 128 zcmWN?%MrpL5CG6SRnUNe4gYilyCBS{WL(U_>h)dTRo^`3OZK%+K9stTb$c}4{`XJW za6T2E71ae|4wBsS?)EaktG3ROj!Co0h9_IIp zJ{{g@VRigb`{GUAEE-=sO^Ieqhgf zmy&vP{)wAQ`Fob`JI%c;NE|4(&s%F%^F?C`?^?auG{qJCF?&HStMLetT%2w&?N`h! zr?U?pa&PMY75goFoll)=;oT$Nryl+0d1baw`}d0bneT&i!!~Vx(#YSq7wA#R4P`T@ zfL$@!C$88dTmYg43>7OMB)W zi~xqn?j?(?fIj{Go;xD)qheqxNO*7l*ICw)U~b)s36USQJO462u-!1_=y%C0xiz3L zK3#Wq>dEyg>tbNS<@-fM0?D8$-brW#hUC9gcc^t=wsbp8;v z{gZa&JyK2mSj$!_eSd20mG@i9Gvn_}-F4ub>j6*%pn5%tS3O94$DWi$Tm6gGwYC4b zoV!!b2@d;)jo0kXmV3IE{!nx_o3^XrG`e?tfhnWN;MzL>nSZ<{o#an!(f6&t;ucLK6U#J&At+ diff --git a/assets/shaded_squiggle_red.png b/assets/shaded_squiggle_red.png index 77c9d7ae5e25038851998ad0cff42b85dfe56413..c7d60550e0dfff6de08ae10c229078cd86c34357 100644 GIT binary patch literal 128 zcmWN?OA^8$3;@tQr{DsXHhf}w8$O9JqtX%Dg{RlIc^7|1>u+7>JjQO!qs`k>#`3?O zY03R%#=+TKo9eCTQ6u=UgAhOEaktG3ROj!Co0h9_IH# z#awk3e)e;kgg1AyXnZ-bH#cDm`<+KWW(aBOrhof;eY<@9y?qn@wD14_@8>z2X}b>G zPJdUu(*90u__x6Qm;a^y+wg3{iAn6otU#CTxh+ShlyQ3V#;W_TOv^WIdgQ$5)Sn58(%!KLo+hk`op1DW z>XA}mea-IkZ`yfoM!aIuWB>nS-J8XA)Bi4xd9^#EeDRyZNS5A86<&E>zbZ}f1AErH zl+>g1PuyI}-?MbzY3^k~;y|%|-dd}gFB(gD*Xq@#DX!p;*$Z-6jYo*&;&g*)zhY)N zoqh0-dsF|f*l*eEeCkvS?;i0!_2@UxE3^D6wrTT|M*haVK#xjpD4RJ2 z?25@gam5}fCz~J7O-s=H?DVkjPQ*v`qGwJIstvB)TE27gRMC2+^mnThoOZoh+B5H9 z1TaK)FIi*-^y%;S+!2u<6$4X2!h7?-&a#dKbL&n_i2SJC`Iq^D?S?5wze`@ptpSDc z>AJI1Pp(&4H@m_!vL?+w<%HL%hO6Zl->J>q0}uIIsX;|6-!Hn`YqVeEV8|<`x<+X5 z$NoAH@oM*;1g%oW`UPMINZ2-Syz=}~x>(b%16Q*_A=d6P)v$^!dFA<~=XF@7^M|PI zpR^OtZ=_M|M@>R+s`t^LpC z+?{exaM(9&yk>W{+|#x6hoZCDv|SCS(Y@OXOc_N6*Vg&Z{Nwd#SLgI8N7KK-lZV__ t)#<|~1_OltrjQ`asB{eW;OliSd&*n;c$qfmp_{e$J}-}|>;Lx2 zYZ*_ghZK9lGCCV=yYpcaDM-ONh{!SV4Ios;>I1q&k`W>&A`DDWBNWNuic-1m2!tv5 LMf+DwOtky}gZU<< literal 798 zcmeAS@N?(olHy`uVBq!ia0vp^HbAVv!3HG#UPw=3U|@Rc>EaktG3V(8#ylB!0q2W9 z{eRJuc0kkOs||jsh8fBpO9OJ&TTA5Lx>0^%gT{nRkYOCr{ZgJs~;78`?2QNMT6?H6JMCJPxl%xzNreg+@8}zZ`$sAo{ zBNAbr-#B-_!mUl*VR_a-!S@Sih@L3_-t$&xLtULg*IO2&-g%q0as~c=A@OS2d8n;l zrmVec&i2dX^{jrW*}zcnonN@G-R_8%oGdT^%Iy`nQlyTq`Pg$7sArp9(U!t}{Yile zmo?ICZT2(8DO}E&aaVppkw`>z-W|3xBd^-=4Q)j;&qxz1E~}ZzjBCy*5qy zJ-hyfs3?Klo2=T~fe~Z5S0lf%ru_Vkb4;(F>2CNe?h;*g@KkR5*U!!N+@ZBDcfTx3 z1lsaKGy3+g3x-!}-yVE1J>qDI1jvDV-z99xOup|3i6^P^H+uROzS{~k|CKvDj?VR@ zP4|H(iC@j)H-2(2(%qf#blc%m%FpK_EYIfqrvvoz#&Vc_tMiTh7Orw%@%wGmdKI;Vst00h{IJ^%m! diff --git a/src/boot.rs b/src/boot.rs index 5f8cb2c..ec23e13 100644 --- a/src/boot.rs +++ b/src/boot.rs @@ -11,11 +11,21 @@ impl Plugin for BootPlugin { } /// loads assets for the game -pub(crate) fn load(mut commands: Commands, server: Res) { +pub(crate) fn load( + mut commands: Commands, + server: Res, + mut texture_atlases: ResMut>, +) { let cards: HashMap = Deck::iter_cards() .map(|card| { + let sprite_info = card.sprite(); + let texture_atlas = TextureAtlas { + layout: texture_atlases.add(sprite_info.1), + index: sprite_info.2 as usize, + }; let sprite = Sprite { - image: server.load(card.sprite()), + image: server.load(sprite_info.0), + texture_atlas: Some(texture_atlas), ..default() }; diff --git a/src/deck.rs b/src/deck.rs index 7739f1f..6f2676c 100644 --- a/src/deck.rs +++ b/src/deck.rs @@ -57,28 +57,33 @@ pub(crate) struct Card { } impl Card { - pub(crate) fn sprite(&self) -> String { - let col = match self.color { - ItemColor::Red => "cr", - ItemColor::Green => "cg", - ItemColor::Purple => "cp", + pub(crate) fn sprite(&self) -> (String, TextureAtlasLayout, u8) { + let fname = { + let col = match self.color { + ItemColor::Red => "red", + ItemColor::Green => "green", + ItemColor::Purple => "purple", + }; + let pat = match self.pattern { + ItemPattern::Solid => "filled", + ItemPattern::Striped => "shaded", + ItemPattern::Open => "open", + }; + let shape = match self.shape { + ItemShape::Oval => "circle", + ItemShape::Diamond => "diamond", + ItemShape::Squiggle => "squiggle", + }; + format!("{}_{}_{}.png", pat, shape, col) }; let num = match self.number { - ItemNumber::One => "n1", - ItemNumber::Two => "n2", - ItemNumber::Three => "n3", + ItemNumber::One => 0, + ItemNumber::Two => 1, + ItemNumber::Three => 2, }; - let pat = match self.pattern { - ItemPattern::Solid => "pso", - ItemPattern::Striped => "pst", - ItemPattern::Open => "pop", - }; - let shape = match self.shape { - ItemShape::Oval => "so", - ItemShape::Diamond => "sd", - ItemShape::Squiggle => "ss", - }; - format!("{}_{}_{}_{}.png", col, num, pat, shape) + let layout = TextureAtlasLayout::from_grid(UVec2 { x: 20, y: 32 }, 3, 1, None, None); + + (fname, layout, num) } } diff --git a/src/main.rs b/src/main.rs index 86a3451..f8887da 100644 --- a/src/main.rs +++ b/src/main.rs @@ -8,7 +8,7 @@ use bevy::prelude::*; fn main() { App::new() - .add_plugins(DefaultPlugins) + .add_plugins(DefaultPlugins.set(ImagePlugin::default_nearest())) .add_plugins(( deck::DeckPlugin, debug::DebugPlugin,