From 71fdafe8fbcaa17262a9aa08b2025ea669cb7c68 Mon Sep 17 00:00:00 2001 From: Flashfyre Date: Fri, 15 Dec 2023 23:07:32 -0500 Subject: [PATCH] Add egg logic and hatching screen (WiP) and end biome arena BG --- public/audio/se/egg_crack.wav | Bin 0 -> 21968 bytes public/audio/se/egg_hatch.wav | Bin 0 -> 30844 bytes public/images/arenas/end_a.json | 356 ++++++++++++++++++++++++++++++ public/images/arenas/end_a.png | Bin 0 -> 1556 bytes public/images/arenas/end_b.json | 356 ++++++++++++++++++++++++++++++ public/images/arenas/end_b.png | Bin 0 -> 2328 bytes public/images/arenas/end_b_1.png | Bin 0 -> 1430 bytes public/images/arenas/end_b_2.png | Bin 0 -> 1132 bytes public/images/arenas/end_b_3.json | 356 ++++++++++++++++++++++++++++++ public/images/arenas/end_b_3.png | Bin 0 -> 1735 bytes public/images/arenas/end_bg.png | Bin 0 -> 10954 bytes public/images/egg.json | 104 +++++++++ public/images/egg.png | Bin 0 -> 951 bytes public/images/egg_crack.json | 125 +++++++++++ public/images/egg_crack.png | Bin 0 -> 304 bytes public/images/egg_lightrays.json | 104 +++++++++ public/images/egg_lightrays.png | Bin 0 -> 39549 bytes public/images/egg_shard.json | 356 ++++++++++++++++++++++++++++++ public/images/egg_shard.png | Bin 0 -> 402 bytes src/arena.ts | 33 ++- src/battle-scene.ts | 33 ++- src/data/ability.ts | 2 +- src/data/egg.ts | 23 ++ src/data/pokemon-species.ts | 2 +- src/egg-hatch-phase.ts | 285 ++++++++++++++++++++++++ src/pokemon.ts | 4 +- src/system/egg-data.ts | 18 ++ src/system/game-data.ts | 13 +- src/ui/egg-hatch-scene-handler.ts | 41 ++++ src/ui/evolution-scene-handler.ts | 2 - src/ui/ui.ts | 6 +- 31 files changed, 2204 insertions(+), 15 deletions(-) create mode 100644 public/audio/se/egg_crack.wav create mode 100644 public/audio/se/egg_hatch.wav create mode 100644 public/images/arenas/end_a.json create mode 100644 public/images/arenas/end_a.png create mode 100644 public/images/arenas/end_b.json create mode 100644 public/images/arenas/end_b.png create mode 100644 public/images/arenas/end_b_1.png create mode 100644 public/images/arenas/end_b_2.png create mode 100644 public/images/arenas/end_b_3.json create mode 100644 public/images/arenas/end_b_3.png create mode 100644 public/images/arenas/end_bg.png create mode 100644 public/images/egg.json create mode 100644 public/images/egg.png create mode 100644 public/images/egg_crack.json create mode 100644 public/images/egg_crack.png create mode 100644 public/images/egg_lightrays.json create mode 100644 public/images/egg_lightrays.png create mode 100644 public/images/egg_shard.json create mode 100644 public/images/egg_shard.png create mode 100644 src/data/egg.ts create mode 100644 src/egg-hatch-phase.ts create mode 100644 src/system/egg-data.ts create mode 100644 src/ui/egg-hatch-scene-handler.ts diff --git a/public/audio/se/egg_crack.wav b/public/audio/se/egg_crack.wav new file mode 100644 index 0000000000000000000000000000000000000000..33d587199a8df6b9f24abc127966703fffe69b78 GIT binary patch literal 21968 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

>6P30oYEL0K?lf*CzC;}pRaiIE%g(+B$( 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 z zkO!P3(T$dxqN)o?{S$@OwYQwO6h+H2FSk*5AUuZvl=Q%-;`#Mzb9WdeH$e9BR13ls5kxaq)@>S~79 z58S=5Z-8>-+9}J-6d0g7T?XFTVTCz1yZ6J{b-**y^k0ewdN0 zP9alc&Ct}29@=^|p^LU-)ah93SlRBPjO~qql`R)=E+f6u zarUM~7h+F=y~wBw`3By;1{9jP)Sm#v&43!Y^u#0?46mXD$+XDm_AvnMv|&S1+7K2V zdsUn+-7xF|qNmT)%A>DxBH#~{FDP$Vt zpe5*qWwIA3jZ>5jVdrRGkt@V5uqp4;pbsrQ?F9w25ILGuN9lcw$u7z5Ee4uMHvzSm z$eiNJ_{HL(d=#5S((L5KR_lTe(3~dGg7XPoCt6NsR;U)hB)Y9`uFI*X0Yj${z2gp z%V`#&k;DgJnd5m`Qc##>N34k6SfW1U1BoLdp|Hrh@|e&CX|3rxx?F)dSrrFE_a*cW zX%f|3NFY*JP8g9;J_p8N3@n$GQV2y+$xkp0Ucul(K+B4(&}Kxmx=f{OFD9|2E-cj* zlla6NW>gbVAKF;xDIsM>r-fgk{Q!W-iph(x5>!Cms?d=cVFxuzqz?m+j54CH*qBzA zK**MtF_Ay-KM>c^1*&t{2%1Irn6w&dQpx0pUJ;UI`if~z!GpOcXTV2jI0bLUBZ*L& z5G6rY6cPEg0fjV~SAl6_89K#hHcyK%Il6R$V8+r0VqtpND$OFigCh-TQs(AsKJ$+- zYtm-Q7Z%pg6ubu^O;9*-S_ydVNrH?GwaefrjRnnZlPA`c+n7CuX6IEJlUfv-E?trq z9Wp7MsxB=Z4!D&jJWLrG;uFN%@R3_t5mKew#nUZniQezOK#qtup|4ba zY8v=)NwhB0ti$RZq7zv#-Lleg2dE~&=0yQ%7D0Hze$Z|eW@c7|o+ytPEXfn^tHA%W zH8KMH0sAEv;85EPm`)T?T#T5z=#iH<#PHc1R0$fUfnH9PY#r7TePiu7j)2-52{6L( zcuNv12OWel)p+y@t3!tJ5*%PzU$fa;pn}t6d{#xD8CeGM;F##4!~K)|V%e;kv_?cH z4O94G{=x-t;`FM+BhZS1Bq5NY)ug+P+uNs$5}JV~VG40s#jBkL-BB_a_h92YJRxxiq6$4H4A6H2td`mv9u&d>-@+ECAJdV{sGKT^T5C$u zXvOAHIGbW70|-Y&*$B6cQ*|P=!8NUbh=h0%4Evxnm25a8N{IK1GOV1}4xkGk75YG2)Ko1VpNE32Xt<11yV(Poxr+-~|xW2R|8bLd4{ncg{?vfiOi15?sXm zQz#FYa2sXxzKU(jS{M%XL}(IQQnHG70Q6`L|DLu)~TQ) zQP?B^2*v;oQ;jNlLj^Ae5)ymnq!A7ZX36=r-j6Y9z+uA@=Sj$rAr^-L6SL9t0=&&T zOeh6vg(_poI9Fn%ER6xUnGrb|7;2tlMf_&O;U;yN0_VwD&?aO^hdB|1(?@sZ4Ic?c zd?!%|W{b`ygpZd1c+oDzy%-cOTpSjfC(#TgC)hwowrVdTl4=7Q%8H3xT;>xopE{qY zBW?mqk`-cjXdRA${mANM!Hk0ZTF-;|afR+n$`wFFl%AmxH~b08P6>|@MOfU#gVMK) zk%+92qxdoUWO1cz8K(?P6@4v;AS{VH>7jBUYa)D~^g)T{O4yaxwLuGHD%8GEK8hmX zL^gzjN}{2Ur<8;miEypcaC85vA-{4qRMs z3)68+Xd-x1M2QC@L`WpcdH0U(GCZe^1cAZ0Fb=Z2MX46IB!rZ~t>To>BxY)@0L>6z zi0E)l2~&wJh)sz$%W7I(;2|-OHumtFN2LhE(ilvlwcI4iE*@AkRnkR-$k#0pmp3^O zkbKQTBsa!`N$0Ob0IJ4-E_4FOp5Z;2k~cragYpzvJ${BP1JUC0kRk>p(S+zmHITO? z=v8Q6q9fSnA}mT9k_pSZ9JnBWljtap8?u_cq0J;eL`@>1xKA-Tp211uNrkCrN}8hE zQe15Hz*Sfzua$6!!r|d*a2m20{=+uK7-Y*>ab7}^OWq_utWba=A`qzw`j;XNKdelC zS~tO}T6y3-TGxX#(K`ewD;9zBG2n826x~^S*P&3=u>M{ zytBpsp$w7|b>W;rODC`I$SERViRI`nk~#5U62c|5!fY`ov;;>4M}!Q;Fy(YbqmejM ziwmTeNbFRQ01u!iB5J;EZxUIEH@q)@J_@K{1Wu@h7P11a$uqJaY26lV)?Sk-rEv@Y zhbNUrZ|P1Ha{xiG3=tf=7svWOG=iXRbw<`GpX4ThjOe0#l$2ZIA0vZjr3V|AEtV+8 z!8x}clbaEyXqd==<;p-TORSV3P)|PE)EIDdIAJ+{xs}tqZy)aqh$%$~qNZ#?+Al<( zh&`y&$tuOJ5si$`0PVkQKvYnYSCInoRw(#ZobBFNso**>T0USB+{LN16OlRK9hm@= zYR?}K0l-Bk5QZq9pklEdPEM!|7AKoWulU%G$jEXGoQeof4jd7nI)+kr`O1wS_C11!%^I5Eg2gKN9J~`cXoq`Fu1Qz8?#E*() zu=JKM;W$om%61uYI0F7#t7(-%4o$RPrk7FqR|L;La>A`2fy8UwI>(4=NbG7ALXKRN zSfX*ebv7ku$D{2p)Lrxl@o^rUfow{og|^7ailXoUPqH#T$+3zA*no&hR7Vzo&y}Ug zM`9M%$atKU+{wVA4$LlV7KLLB5fbtcf$))UPPW1K%p`*48Sa*OC>GQnoy;IxLv|-d$q@85d4Q#7Tk_a=wk^o zjx4J^RN0dZ!Rzi&Dt}wxgWfaUxb3 zj@-`4GUWV3ui9nG$+xR)f47T~y|PCU zY`br9;bKhfNiwJ`?qq34<>2<4>-(W3`X8cQDY2fMw73hq-^m{LO6lMJ1owxnweVQdacm zCg!g;7>G?WqbynGl{@d>E_by177dhVTVe3wL~iZP?HcYs`2ME!4Bp4*2`#*^vzIr+_p_8A$IuTLI+fBusZ?*BfS zSXS~UPyU(jWv?eg$k!*M$=CN+{--0Jtl`f{_D^SS_x0yTZ&&pG^>$wV_|rAW(&egL ux<7mS`A;slH?-?Gx%Ffde`eiW=H@?hfsgIAKY!`p|F8dF5C3~i^Zx>H$KGN9 literal 0 HcmV?d00001 diff --git a/public/audio/se/egg_hatch.wav b/public/audio/se/egg_hatch.wav new file mode 100644 index 0000000000000000000000000000000000000000..74ddf340a80e305f12c0b4130d6d69b42c100163 GIT binary patch literal 30844 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 ab)mi*8RCf!xp~3Q0_9|fvwdU}eBr;+lY+be literal 0 HcmV?d00001 diff --git a/public/images/arenas/end_b_1.png b/public/images/arenas/end_b_1.png new file mode 100644 index 0000000000000000000000000000000000000000..a79e8d0e0ea18ccace2604f66e8238d98893119f GIT binary patch literal 1430 zcmbW1eKgYx7{`BJ&oH`0Sxuqtk!4<&s4l{kC39`w=A~^7C+1~niHK`R7P%DC!l}!x zOXfAixVD()t!|5k*=2{i7?zh-jJtc!{kMPa^T%^O=RD{6oac}4d2aoPKBujDKobA} zZIn9_0{}{A6r2fCSM=%fPn`gu=88f(`&?s4gs0I4C?I`WJv!3(Xb$MrN&OY$6fizR zg`#0db6r&H|2d~Xm)!iNz9)uxou0h0mLPL{)uL1h>hn6Tl0ID3Lva8ipzvtz)}RbkMV zlo0h|p{CeZbHt#b=HA5fadDQ5y@LvGsX3FW$BM16+}T_eGf89Akk7O8HtQor<-53x zBpvP6#I{u1ibP0{6+>AtoZev8A|-3!2j6bS_$E0TJic>Ki+J7x#Z#ks^Gi#aP3bM6}ZeyHc# zc?^+!U%T%)2Tn1dapqnwiSyK~_H|D-w3Ny61Xa=ZJ+qH`#BfAZ8JrV__KyPoA1`$=5-1uH)T#rp;UPh)gBws9(33? zq3m>uE3p>avG`Otzx}yPvgG6+*>}zXOY+m#A~5y3i^Z|7B(~iw&!&oL*7^AR$tg+@ z+qxMV%&n}CNHrbJ5$*Aan02wgO<4S8kg|En3CRG%5T;Rn7CH&NvAmD7`ERmf&9b_j zk_zdBrBy8g!s9MWSFJ zSPE^*9ECM;f+1K0I~YVhVw#?$p7k!PsT-D<8Z|oV|rZY1JDxu!y z#+UQ(%Y508HTJgwpYo6@UKS_zy+TD4sm30YoaZ}hhBm900fNbx?qX)nZwd{ zzV{2JztIH9s0Jpf&X$r-zE890A%{)VPAK=!vxTDZ*Qxw|>w`+6`h!uWG@voJtf~1C zcT%;$jeoKDa55YP;C$1zykr5i8WY?@S;IcjHF$NHF(x2mzY$&6>6?G*e+^1|MJd-^ lFdn_s*NT0eumDuJrzdbs!Jz+qe_)ILA(R^$S?5B?_!|yrjQIcn literal 0 HcmV?d00001 diff --git a/public/images/arenas/end_b_2.png b/public/images/arenas/end_b_2.png new file mode 100644 index 0000000000000000000000000000000000000000..8753543b8b0052bab1bfdc74e95ac6c63ace330a GIT binary patch literal 1132 zcmeAS@N?(olHy`uVBq!ia0y~yU~~YoTR7N&)4$xKVP-InHCNN=Eu%2y|X2r(se>ne%{uQpe?Znw~Nv8UwrmoWhvkmP6 zoH{|pE2c(isBZV+|CD#^?%bKZYtN-U|IB!BrtF8-tNQ0ZpL>(c0<@4QV6aW?RUAXi zwzF@;rrFp1cpLtYPwLg)UE&PWGmCdmy&Dz(((?AHmIUL<%b7g~AC_n3m&dE#aJW|> zwNU4ekm3!S$))-XdQtD^$*V9;*f{M_{<~WxPq%Kr7T%J2cn9a92rtL7>{`{heHMKk z9nyXF4$Z+|{5oPKD-3CHEN3$v5Aa5x+bdcJ-CIhphN=S!M5 zXt8AS=^FF~U1NIx_FeoVF9}vHhht&+q7iBN<@S75Z-0DUzTTGYvI0=_*1dOiQ*8f# zKU{u4{!x~MDbOuuTMeuYSb{(3>aBHiS@BQGi^1sIGO@JZT6;xmOlI3UNIiTuclX`* z)rbARUXNj#;1>9EqB=vS$<_GHH<_Qzo$~+8I!?Vg(;1%3y=;GLRn>x*myh>v+5bhb zp{HkUHUBxEq@DlIPInG1E55!gxp?(d+dcowrY`s<&gilB)7m%7v*&-=8y0$V>G`kc zYHebx_P*+OWKr09bJur;*Svf8TsAA;@&CHvejDNa|35yzU?2U}y=C`-D=EdhL#65} zv!$(ToxLtUX!xJ_yjM@YuG@Qc;f2iAza+YB9kPrwJRG_9-TPp@ zxAWrtd&^$4vEDoRFi@uCR$fDZ2SdgE&HEjHm(d^^^GmG zc5hI1bn1=Q4nS2~`oouH>A%1F@qXdoV{aQ9m;YVbB{m~Uv^61r_H3Z*jsb(}(XZay zwd-S0o$I!ceG&#%A2Wj=>%g7@}q8znTLasGQU+gs(EGa6U=Uff*m`YALfu;b}@|FpO7t}nRm$m+4S z?eCFe3qGvoI+(XqLhyb4kAwBGTFD*^MxV}Ae|FmHF1lagN>XmJx^}gje!Y1(_i5LU zr(JT{de?ceh1MME|36!7#x0)P*SPHTx)@SaIBki_V#FxgA@HB6kg;Qle59feP(5F2 dglC$sFM}44%>mVaDR?r7<>~6@vd$@?2>>+*^5Xyi literal 0 HcmV?d00001 diff --git a/public/images/arenas/end_b_3.json b/public/images/arenas/end_b_3.json new file mode 100644 index 00000000000..561b9790785 --- /dev/null +++ b/public/images/arenas/end_b_3.json @@ -0,0 +1,356 @@ +{ + "textures": [ + { + "image": "end_b_3.png", + "format": "RGBA8888", + "size": { + "w": 148, + "h": 148 + }, + "scale": 1, + "frames": [ + { + "filename": "0001.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 320, + "h": 132 + }, + "spriteSourceSize": { + "x": 220, + "y": 29, + "w": 74, + "h": 41 + }, + "frame": { + "x": 0, + "y": 0, + "w": 74, + "h": 41 + } + }, + { + "filename": "0002.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 320, + "h": 132 + }, + "spriteSourceSize": { + "x": 220, + "y": 29, + "w": 74, + "h": 41 + }, + "frame": { + "x": 0, + "y": 0, + "w": 74, + "h": 41 + } + }, + { + "filename": "0003.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 320, + "h": 132 + }, + "spriteSourceSize": { + "x": 220, + "y": 29, + "w": 74, + "h": 41 + }, + "frame": { + "x": 74, + "y": 0, + "w": 74, + "h": 41 + } + }, + { + "filename": "0004.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 320, + "h": 132 + }, + "spriteSourceSize": { + "x": 220, + "y": 29, + "w": 74, + "h": 41 + }, + "frame": { + "x": 74, + "y": 0, + "w": 74, + "h": 41 + } + }, + { + "filename": "0015.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 320, + "h": 132 + }, + "spriteSourceSize": { + "x": 220, + "y": 29, + "w": 74, + "h": 41 + }, + "frame": { + "x": 74, + "y": 0, + "w": 74, + "h": 41 + } + }, + { + "filename": "0016.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 320, + "h": 132 + }, + "spriteSourceSize": { + "x": 220, + "y": 29, + "w": 74, + "h": 41 + }, + "frame": { + "x": 74, + "y": 0, + "w": 74, + "h": 41 + } + }, + { + "filename": "0005.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 320, + "h": 132 + }, + "spriteSourceSize": { + "x": 220, + "y": 29, + "w": 74, + "h": 41 + }, + "frame": { + "x": 0, + "y": 41, + "w": 74, + "h": 41 + } + }, + { + "filename": "0006.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 320, + "h": 132 + }, + "spriteSourceSize": { + "x": 220, + "y": 29, + "w": 74, + "h": 41 + }, + "frame": { + "x": 0, + "y": 41, + "w": 74, + "h": 41 + } + }, + { + "filename": "0013.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 320, + "h": 132 + }, + "spriteSourceSize": { + "x": 220, + "y": 29, + "w": 74, + "h": 41 + }, + "frame": { + "x": 0, + "y": 41, + "w": 74, + "h": 41 + } + }, + { + "filename": "0014.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 320, + "h": 132 + }, + "spriteSourceSize": { + "x": 220, + "y": 29, + "w": 74, + "h": 41 + }, + "frame": { + "x": 0, + "y": 41, + "w": 74, + "h": 41 + } + }, + { + "filename": "0007.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 320, + "h": 132 + }, + "spriteSourceSize": { + "x": 220, + "y": 29, + "w": 74, + "h": 41 + }, + "frame": { + "x": 74, + "y": 41, + "w": 74, + "h": 41 + } + }, + { + "filename": "0008.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 320, + "h": 132 + }, + "spriteSourceSize": { + "x": 220, + "y": 29, + "w": 74, + "h": 41 + }, + "frame": { + "x": 74, + "y": 41, + "w": 74, + "h": 41 + } + }, + { + "filename": "0011.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 320, + "h": 132 + }, + "spriteSourceSize": { + "x": 220, + "y": 29, + "w": 74, + "h": 41 + }, + "frame": { + "x": 74, + "y": 41, + "w": 74, + "h": 41 + } + }, + { + "filename": "0012.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 320, + "h": 132 + }, + "spriteSourceSize": { + "x": 220, + "y": 29, + "w": 74, + "h": 41 + }, + "frame": { + "x": 74, + "y": 41, + "w": 74, + "h": 41 + } + }, + { + "filename": "0009.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 320, + "h": 132 + }, + "spriteSourceSize": { + "x": 220, + "y": 29, + "w": 74, + "h": 41 + }, + "frame": { + "x": 0, + "y": 82, + "w": 74, + "h": 41 + } + }, + { + "filename": "0010.png", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 320, + "h": 132 + }, + "spriteSourceSize": { + "x": 220, + "y": 29, + "w": 74, + "h": 41 + }, + "frame": { + "x": 0, + "y": 82, + "w": 74, + "h": 41 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:9227f80ed186a6506e8a56a2e7a08bf0:169638de1ac1e895a28dd709487f801c:2fb8e8a548a4fb954c308072c5058b25$" + } +} diff --git a/public/images/arenas/end_b_3.png b/public/images/arenas/end_b_3.png new file mode 100644 index 0000000000000000000000000000000000000000..2ce6e372487ba857b96c5ec27aaaa237b8edcc38 GIT binary patch literal 1735 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 literal 0 HcmV?d00001 diff --git a/public/images/egg.json b/public/images/egg.json new file mode 100644 index 00000000000..19658c63733 --- /dev/null +++ b/public/images/egg.json @@ -0,0 +1,104 @@ +{ + "textures": [ + { + "image": "egg.png", + "format": "RGBA8888", + "size": { + "w": 112, + "h": 30 + }, + "scale": 1, + "frames": [ + { + "filename": "egg_0", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 2, + "y": 1, + "w": 28, + "h": 30 + }, + "frame": { + "x": 0, + "y": 0, + "w": 28, + "h": 30 + } + }, + { + "filename": "egg_1", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 2, + "y": 1, + "w": 28, + "h": 30 + }, + "frame": { + "x": 28, + "y": 0, + "w": 28, + "h": 30 + } + }, + { + "filename": "egg_2", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 2, + "y": 1, + "w": 28, + "h": 30 + }, + "frame": { + "x": 56, + "y": 0, + "w": 28, + "h": 30 + } + }, + { + "filename": "egg_3", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 32, + "h": 32 + }, + "spriteSourceSize": { + "x": 2, + "y": 1, + "w": 28, + "h": 30 + }, + "frame": { + "x": 84, + "y": 0, + "w": 28, + "h": 30 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:a2a114a3e275355f11c124f7ddc3a158:87e6ddecd2221fa223d5a07b1b3bb040:f2ac48b1c7b5b0a41ac50c4888a029cf$" + } +} diff --git a/public/images/egg.png b/public/images/egg.png new file mode 100644 index 0000000000000000000000000000000000000000..f2bdfa1e123a8105d0b832dcd949efefefcc4b0f GIT binary patch literal 951 zcmV;o14#UdP)u)B6B)<8C6aP=~a%_I+dffLFHg+ z9Dh`3vhV*?XtL}6snFyw{HlPVEAivuqg>96tI&4ITY_t)6@?7;Jx`D@~Ob>Q_XBF~91mVxI)81uk$B8*w!IT6Mp z@{q)#3_K)p$O8{a9J0Ve5{JU=-zCYuk9~VfvhQP8oRjSPIMml9b|2-1hztu1!ovcC zu&}@&Sfb4HZwjuuL|#>&6r6R5tSsLtIO!5amTf7x3_Foufzha=(U$)fmZa|%dkKzdhHc4=+_#9 zeyuU+*BXOH%zAvJBo!NxWQEQH0)E_pDKDUKIRD&IK9j0y?C1^ zP~fs<(R;C(C(vN>`@|jtnEXDm#{ee3PwX*($?p?;3}AAueX+@nl!~4AeuwIsQ4H@zM1OF=uJ3;-m8mV$RY+#Yd+* z#GIwIijOW2i1}Oqr~p7A4Nfhn06-xvPA#YaKp_QAEvNuMAvI3-?^B~oYJ%+F!&aBn z2HC%dg)XTGvVRY2T~Zyye)8or5#1Hzm5A<&aZf~d#dsv5f2oN<{}L60{v|2~{Yz8~ zhSxUfgEG7(av$X3HIexs3$Ka72Ze}k!cx+lA!*K#G-t>|&X6Y5{|FpItuYL>CNS8-(>e1{cyy8r%n&u?W? zym3`6*F)4qZF;iOB_=2RhD&}H;xs2>ho>(YBj*=qlusoKkeP3Nr23|aeS-A=<*e5+sm2)W9xzdx|_!R?KIN||mb xEUI^2X6jHCv*wM??K{u17uGRyP1v%R;r0f`@K53P@<6{Zc)I$ztaD0e0stP%On+x_8tI18w@-oVQ6xNa%HSo*0pkkU>dE zNZ(PD-}DgQ-_pJ57=EE|qNV@d^ZNg_|2G5wznFoGp~#b){f+!+WME7}cbkgh79}Ye zISnJzz30>n05%p=J4l z681G5^6|r$gnμynL7{UIsn_boIcO(ZTOCQ2?oGWv5$l22|{Y{~cJbc4ja?4qAJ z`I(jF)dj^BEwzQeYJOL>{b{OCEv;*Sb(F!o8e7|Y2L5$-{#|Y!>h14a99$hA8Jip) zots9i&CE}&Of1c=Z!BzX?QZYw9PA$+9fv=XdVKTiG#)w@-XtUp-T!+?Q^Xm#NJ#id zbf2i3_$?el(3;B#xd=~@IN8LL7vY>t_7b(CGeUpN?U;=9 zRs6k2{1HfZjN`Er+g(!iH@>=lPz6!yL8(A%>DeI_G#yoMD~R85yJ!F8J?ClvY0qo! z#nA;`o4}*Fx$S=og@tPMD;joc^!`+l0xm8QF(TSdrl49gIJj$MVq`)OY%y>0)T}s{ zuPyB@GPBtH!^)xyGrM`k_maZ2tjXBhE%ebRgj}?1+`p;m_4o)=^C@6N7 z=y1D^_BP)9tXOh=a(z0Qc6exrj7u0nAxWyLn$3c0%q#sa1J11>$W_l^Jq|*U^|gTkE4sLzQ}m z^v79-2^krwh9SYsp1pqEuB^Kinv1t)I04WeHLiM_XDvbnCnS(vtcfWpBwMVkX5CO@ z-sGnr?1Q~MfSlZkwMq5L#NR&*bk>2F4~e&mOV)c4lacBqMwHuHi?+^nFX)i_HIvy$ znQp)OLVLRyYaz~uHQAuXDlZFGfqTGtW!2Sga-`rF33+*x_0~DD8ZTd#gT16y4I|w@ z*?3w+(e`_mdz_q}oT8-v0>*_{cddq6V=Ed|?P|BbBfU}Km8pHIPUB5H*-A@-%YsEL zHnl?6pWW0SE2@%!-@Z+g@kYGYG=7?_k(iT{6I3_9&ruxmOy}#bl%}T4+ia6dfd3SJ zsv}HNTwhlyknEHjC(5(LuxWloeBO<_hwfu~zqiVLVAe)gV)lnIcXaHRl!OFdM?=I< znMd9}L+_l8bR?gp_*$?SDr@j2842*iUTLgnJ_xgGYf~nZ5oy=D1F0uQ4gTuW-=-$qpj$HT5Ub)Jdhvj5jH#?H$9!bzh+UYUh zZt}<@nv|4=p;Zff)&3pd@iR)lKpZZxS4vz9c)moMQ&w-U{{{TlIc+B;>D{kiV`TU! zH4F<=68C3=H=j1Jl8tG*6JWaW0`1?@s<}!z>*VCLm%>ud9*jQ@ zQJoE;Mt&U{`gWUKwYW`1>m~Z$D39k?_`hj~_B2O5x9TV1`Nffu->EwRjsUx$prL-% zugZx|V~w7zB=vD5hg4moiQjR`#sY$R&kCRGlR#`NuvqM)XmOfM$~&JrFW$a#ctuBl zA*E^5qo@6&urT*pFU4{=QrxGZX-+Q$XFN4=o{+?Jm$fczGh8nr)dBGJmIz;%Xp}nm z;)rZ$0r2pG-RWyvzM8d;;l8e->S8R`3q59JCex~-|(0s;b_KCQYNmXU*M$)MPI z^5aSIVOlA8i#)|!S7%ID{|SlW8%zqtl@sMWu!Jv#AT`Rib(}ld7=?2WXW(?L-y3wV z7`TsCpLoN>c{_AgkHd=Yc3l=*@bSsYPZknbUf!#M()*FmiLL&_M;e;pcZ0>C6(&~Q z)9LmNuB5@vl9%Twahf%@I!1$s>gsN)s!-_m+URVe0ip@6P5MQoqn8fr{4e)7y6`~N zLTOM!`R(K|!|0_&49GGr+lDf%rlGjF+BC=*k)%~vl$s^6K5Fc$MLwqS+vV(ZzroeD zl@H&dhKbm%*h>Vm2prNL$I~tYChNdm9Q2A1J&ixA7z)3iT3{9`oq4`3dbvln;g#eL zIWg7xK25dpo-dXJ@MY|~91Tw!W(rGYj}|x@e*)~=%DjFQ31dOAECtHXg@FJ4dZ{b+ z2WF$BUZOYL)3ZX;RU<+J7sB1ScQ5=fHRoqpNEMA1SgA)cPDQ!JffGV`x}^8tY5H9M z!rgf)*y!Bc9ADqB3IFjLUn!~bD1lXP??tf&e;W7FYPtx}C<{o7bXe^JyxjGJ$+y^s z2vkL}qdW2mJ}0v9`>$U$2~FQ_vwem4I05uY@(Y!;z>}XPxj*)NPJ0ffHJpO1;_g7C zT3RUA)>Kvfy0*((sDt0j?#X^?-S=s3)@r46e|5WzH@m9B#ksr^`Sx!;6GmcaeVTSS zaF~qCCFRua!1dF|7R#wIf~>jig~b!|xo2_AN0H}morOP(e=z``N#0g<%L`&1GkYjF z_he>bFe$f&Pg#lkbxz)!kctYl0DfHKV87!`OS>`kPpaI9xH}EfC>r2>lIxO|2^!WM zz4V~Er$Kqm&ChLZjRZS$B%45~uW4wsv}h$@A%yO&O`Veng)FmZ8(5+N7(}d!R3Y_b zWF0r-`_F`x_Mub=?9c=71Z*DS^0^|ocy|y{vmTpW)85|x`?p}A@y#Ie;zQ#-|G2$c zxg9K9qvur)@VPEyv&Ya^YT?x{N#}uEL^Wa__HO~>2bER(YOH3go$k1=UG%4pF%uyR zUBs>TD9C_R%ltj;gS!xOrx|bP6&K4v$3+96*6>W__vi~20%v_ zS6A!r`&7q_s96`sA11VGjm)WDckkXMvakebK8;4DzOuAYd`!K1fb?BnZR{zydw1;{ zMtTaow)wq6^WL~-X%L7)lIwy9)qrD z&S8ec`8tAFitY7xUB-T~bcl-P4U3$o^yOop{e58Fd2!{me%H#x#AJ9-D#un!JJ>YX z&|*=|mwxmg!H(GVjlcbyelU`{b;~`LhB6@F_^YvL&vAvofeDqre@KqMd(F@1Oe|35 z5cp-`MF*M7=sVERN;hBNhLiK5aD0t$UQMIqqEk!y#fK;0=6eZ}DLU5f6aaNZ#oO&K zULHXzuCB}E%kQ~%unze#U+x6Ii5MhS37kwMiiu_C=a-kqad6z$(qb^dL>$f*v(_OT zso^x%&d!%i2DTu{_#owgzXf1AK&3}8ciYH4$i_TJAij&{!&7jm%wZ|jJ~sTAE3D5- z^P8lSJu6JJpt7VYurScU5V3lTr~0fydwS{#2M4`r6EHAMRM?#<(|A2w14(o->evqK z20wBH$Th_J58HyQz5|<^4TOR=BflmT$meHMnj4Y#NAsP3a$F>%bBgBRnlKwqD{MdM$GBSnoHHTvvvMst7_L)6)+Rjdi8l*gYKR(#eWXw6AH*R3LAXEr_4r^9MIX zg8foGQ5vK}qGHPGpg*#*BtC=R`+5W`?XIPk!%8dIr0W=808MsMl8wWEu)Z9H zz4EdJJ^IlMVuJ1&?D z*uDbh0&>YO2PugUoSmPoj|(rvN7n(ORrg;97rK9^z1n6N{)c+nD2OfR zTYFdUi1%hCMKq6$g!zgavZKFW_?o1oX26aC6#Ez9K{0>pKfTqzsF&c!Yh03^#+!ic z`0#d@;)WwDLu6vO>BWh^k@=LRPJPQ7I+#0}xOQ&8o)4Po0+51?dGerF&ql1mVPv;u z6V5ayUM{Gb+n7#+XXO6-@4v1N0J?e^=i}?+!>f9D%1~YN%RaZN3SKF=e?cY(F3?vi z%8NJj^Z64)_ZbY-O9)n&NFW-`17F=7`}h0%-OyP7XXeTwhgFnF$bBP7$t#$K4%lX9 z%4Sz}Ns+TiPwJpnw7B>e>G|84Nz+#%S=HKKnQ*7(zx&Dr!i@S~A-vWv`A zZDgx9?#+?O1HhEDh`V_UTW;;~t#nt#3E!{=v(e55un30pef$?+zPUxZ@yy0y!L@)#-*f7iV4-+z^?~eQ$@{8{Sh?)w&cMxdt z<%`_~kg}f9$*Gq;0SFZe3JJIALObZr|3(M= zR&}PGJg=~?F~5ezHvaAJHP4UYqDPc(Rh9*pA%W%m%RKf=Qc^r1sUQbG$6`X&O12-S zlYkSgK+}~zRB1N$Ed7sjq5_4E_n`l;k^=wM_>{2%s4y{+cr3*Ikief0A4KD84+ad_LLAJ)uoE;xi^G zN;9l&m1yqV*8$CS=Mh)5EtJupy~$I=Jl*~@J#>Hj!gS_~(+9{j1Sd)wgd52!*f2a@ z8X7vBIy6DFgn!F4blPcNrb4Hb0k60qTE53irm4Ks&Yv-7an!V>bf=vtJ!>Mh@I2Kk zaNm5SY#*EdFMxx4yWA6%-msv(XCLz(5(4~ePruxxfIH7m>u0iAWz`T+M@Ds1-8w5# zNUPVG!qwxs?Yka_NDg+=d9&DRcXYFNWG`dMxJ$WoJ=J!xV~PFDRg%A8V6PIRZ??EO zQ;d+Hx^v6XQUpryWLCC=WilRx`Va={LS!Z}Q3Jlh)98K!;t1rpi(4}@au22paDT0| zn+rcOj;NR&CcMMX7OP_Vp9tjQ;vU`z-$ zhtSOStkdyi*mVf-_>e5!J4r+ z$QR-LrHakpr6<8+QLbK?BH70WRf#aDZj@0F_lIj4bj+J2p2&{CcYcn}+a33|u7|XN z042}$(i2OtqgOxx)UDe1P3`#m+Mmggz^5&N3)qTs#aoN~#F=Sztcyures`VxE32l!+Q>7P_QQ4A=V@EaSs>y3!tbZo{$s zYn-FmFQ{W-H^Wl=O@ryf@Y`mG$3mzK(%s>(?Ti9^&R$f3HVC`Bn|>_gF_;Yk1q21G zAbcNT(qkFoj%rrOF)rfbYzGaI!+h z$|!@{t&_i#)VS?Q2{D_B-)8HLoo730=F(xJ!QG z*mc9j_X|d!?>}0aj~04LiQ`uX^)P z@ZQRJN@y~B@A<~#gKWvKujOTxezb}Kvyf@Tr`Rw5(&nSxd+w$^Oa80v_@(pW`LN+= zd^RX}=@$Hf)WsSVpzWH-RWpSO;34epj@zGMqXVA#f1_edzRec_4-L(h>Hw$^p4UWi zP7DskczmKK!Erc6Cieqv=B~6k4YjngczASoZk0NH3P5oB#ERM;FKRpsPIp*hF~x3d z+4~>sU01XhZ=)Z&)y=V=2%GN`M6e4AA{HN(*TTDGBN_C0(lT;Ds`NI8-BD*0!EylD zb-!rNd0YPl4<6NyR#ja1Q>y;O>dodD3bS%DvfPS3(#C&c{M~S2Vyb?*$QwHiN*L8l zfN6amKZ>jZt`hb2f1NNU%WG?Y45kLf!1#!qx{D7lT@%8+%g;q6K2M7DXHm+%X&+v> zy2|en?(`j%`*;}es>t2%29Bp$b8v%5e_J0nw}6l5%DRtL6Idt43jvVnSJyw{XZ7j)n7ObbY=*xuTpkJGJR}0DG|3hR+OMeiU z*c{B4y)1@~>>&qHDK|?LHa`EiAR_c)!=TJxvx^_5u{lC!wFx`tbXq(a?>Tt6@-p&D zuDR+d*nV_n3Eta1y|8@N8=nJW*i{O+CxoEs&QV(|qXh&9`K8c}Ko6(p>vP(2h;=33 zrMqIJ>I8?nXV$%@@-t+Aw#FdhowwBod0|&H6zk>wYT%Yd;Rm8Ui1kp9K25Zak*UpBL2Oq;o4yE zsYd=z?SwB`CsjJ~9q#~q++}tosCKw>|1G_jgY5Z#Xk@+)>9s@|Ky?vaJ7x3`EX|oZ5o^U3wkDvRgrknCQA3t_C$w%}2 z9vg*lxB_FU#eHbhPJ0p2P=Cu!+#g`F%S0m+q}_YM>*_JlFGriSta1JS(4%Dx^5b6J!x z#kw{q1$I{8Yu+8{_ye1>zqhT3(`+W*3(x_>hDy@4%%F66F*G<*q`#E zyBhQizt#+t$2|el(d?+E1zCjnS3qPQFcb|=HvTp;(fzi8yrLK(!FF7bV)*ujTIlpJz856(UkJHpqzmeo`0HJ^)xZarROJ~SN&rhrj|pdE_m@Z>WCG--Ec(I>sLBbit0n^ZKp)&{TJyvA2Q;j)|k zwg!6C|1sF$^!pO|sjf&|{u6yVY6!^5ro!_mO0}hS$3KbzB*0QG%u-Ud$%*?DR;19M z#9ZQo@G#U0Raw@;&orH6J-FXa=652ujLa169+i7-?ZqGK1l)rC?X1}3fFd4?B&2Q^+Pq=C@ z9p?^i@!Avo_mSf0(q&eah#^}=l6L?Ei6f&Ubm7oW3@NsVbCBwOPA5T2d$L}>1Mn35 zBAC)-=avXyVnR%enK?fVm$a*Q{2_67QQvX7qWQ(-zL2n1p+;qQGxgEt9Noss{+T;9 z1gTv0{B)rRW)A@gocKba&X*mbntuZs0skf&3Ax~w*4hBdd8^-CEg(U`{oN!*#V#xD zRie&$&qV!$Y5C1m{T7jv5jr31aVHfe-EWuy8n3fop3NzUgTm{8bcRhkhKI$-kBx?j z%%ENn^6sy;OG-agHAG5uBXHLP6~EL16+PL42gWS7K?x(I*s6*iC(g!9Dr)`{Q!Z zr2J;~R(bN7!oTrfuMq}%WjVf6QUAGg^_0IhQcKTQ!&P=V|d=}_a;R11qQ{u{e35W@~WK+eT;wy5@xEbLg3w5U`zGvyXEeXSb z+q;2|@m?o?CIg>0WwtWRwFV>q#YQ@LZ4H$ITc8lSd5L#kw_riYf9jYR6hezx%JOEHk4_wzI*fp0ppm#$U`WghU50lb#jgEr4j@8vt!1-qXhSMmoCLhdmgV^4>O2SV9&fh>T^a8gKSL1tEVjjVP zQMg6<8HBUMvP1U$egfm8)!Su??rmA+gK}*v7#)US0_LQ?N9oV$g`0A~`Fc-*c6_!n zIfd$H{Y~OBjv}}bjD^?dB4ek;h8F`jCR#RT4<@V#^rB}V?KWC~a)yF?AIH5(| zw9db@jPgWAJlhSGw;Z61fkQ7hiykt&5U_iVhQUE6>wD4KKwgzV{Gr}DDRQ|jkibA5 z>_-gkbqDY+E^br-%kO54UK={1m|hMNdBpL`ZEaz%A9!hKbO{(GC8e{{Gci4UC}~ae zXW_y>Ha51QLAN1P&QVuRPEJ?uvHD=;pFeUh#0+)IRR1)q^7H3a6lo3j^y}uUPyE%K z7?_v6n6&#KI$Qw>m7A!Oh;wA7N>hf`>5E2cQz@gdV6}Jim_Kktmzk*a*GQK z3*rw>^$glGvzM>vmEl3x1R!+>AV)Re{E$Y3pV57(Js3B4Y_!1?S)FjSKRxq9V@+s_}xm3!uAi-}E4DCFh+ zxUtuyDCe8x|C5mD0vX>Znj$KY)C{XDJ_C7ZX_d6dqP9W={-F_mMTi7IG25x`Fe)HsV-k=9Yx3Rq zcyC_%DXj03sxfF@OLUvc`Twg05DJd=cO_M|d8Dqc;IYInaK)R>%KFXV^3pj<@lIey z3g6*nI$L?k`*(dM0{F}u|60UIK+nrd_xP8qo!{|NVJ#OZkf&k##x7OD70D$Jw z(spd%qVs>3Pg8w9+8zo|Rx)HODXT&^$3o{7J_8=Z(W-vehY|6*$%8$5jqc!f=)rM2 z*D8*$7IL!Ni*t*XLlrOMQJGd425FjO*TOfPZ-mRz?%c28OpEWjbHzIZ*KDOnpify7ucKD;8Q_#@%_Wd+WF)Irx-b71lFRDhu8XLhyMQM6V z?J#0Uu-uW&BGZ%-#nq`$OocvDRgN=0;J+M+4?D$CSNi&>Us<;Y5JbGt2fd>s1LiNi zwx^Jcs@Ho~W>1NCrI>g!(Y{I&Om~>kDRmyTuD`{;$DhcYB+>X$VWEePgwu53^O$RV zI3mMlz)Adgh33;`dy6`AM;)N7l{$J;&)M?6oX%!TLbv=M4km<CreADm-|uS_ff_3YpAmWFRQFFc7W68q^1{uL z41YM3@uzP}$gCetmIo8@XE`w3{*|!lDdNI6=lT*qyCeU_I*Yl{IVvJ2HJVxAeK^EU zBl~$!C&yr`F4jx zFP41~?U-CEP(t)_=dCjC#@ugBHPmSnsxMoceI|DUn>C>CH{wVlX9`9^Xz+I~?@1G* z28GAn-YZp5W za=}5ezBFIjfw#K)u5Ei>`nk1|uf{g%W>1|S0-A*8omUF7^>M~xcHg#mU12t)ZQI3D z-N0IFQWn2Eu5#Pg&4%GCYq8zu!6vy1wd^cM_q;OU!*8 zkl_S@7+Dz~_f%;V3jKV7ke(K?uHhnud0}>PKxT#4!4L4KV~=0|%29oCwK7cTv^-=F zGVSo`>f&D|NO10M>#1R;Z;4!_v$1Jzt4D%gFU9d39}9QpG?A*H|;6!ZMQh2zM+xct_3>y~*ztLDucKhpVKr8mU??$gj^O3cuNv7M3 zw9Dk!2NHyGcXCc+hI$3d@PlYDto=`Y)N^dsRcDZ0hmC@#ZOwP8v>N`@j#1X3*}1fP z)Z5YVRHs-AtKP@uMxRnMxm&Jo|2j6}*xo+^zkG9#g>r(D&5Y^nsI2e@XO*ps;p`wZ`?yTBD5YAUS zks$mjq0tbm?2pF`a-rQ;l>LR;g``boo2G1whkzl^(uUTMLrFU)1a7cs?3PGz zjra+Z4w!LQ-jxd`xi$3q()FL-gg0}TW@>4M8X~a%i=)JGAK83NB(K+c;r?Oh(W_|1!nu8KIc93_vGN zCGb+V3Eq0cwAvvj>+e4V5^WnB-(_PE2{5W>&+TSksIsk856vsr%1v+X!`b@3AQz6p(F-EM*YoHB zxW%XIs~zw)bVVCFCVV&{e+L3k3Ao%!Wh8~pB43lC(P9M$R|O~51DxOR!2s+f$7A!V zqjq-w8^032V?J+IAUV8pO_qmj2pxOKDIN}F^Wpxg^JYGt0mM_ODE_83MZr{FNBHPf zcTi#{2?&_f^wz#Ur=r4Fq@(5wDM$v9t&*JV;J%uuDJ?yB}e#13F=X0zD+?gS{C4EWvsE<+15`JlYn@6M0E{#yx86SlOwW!j*(&Ol zAU)FBfRk&zzJm;i4jkmwTod)=}}&=WJ#9Mo>V&C=OLfwugBz zG%<0XfP3V*sH7ZZ>*!oFTduOo>KlATa1uh+B>3Sk;MZsb3#-)v07pN%0wr#9^Mr64 zS%|u=w1k%-OMvZ&t+U>eaa^K>8IIwVS$xcDVP4#XwR+-dROW~02?V@9Rf;xh{NMRvJ{{*T`OAlmMzLzC*Si9CU!`h&i8ynlKzW;4_X)!=A60^wADq@H>MAa)_e~bnm&o2nnDyLAQmJ=UGKvAS z)#;_w^Z9MDUZ1)25Cbudye=6U5190z?h*ls+!pP=OU&i+;=MG#76XsDEu%o74ZT&ei z54Q-0ks{HPW^iI?RBtd5d^v!~L|jeoauPdgbVm?% zQBV>%!_r+!R0Y4dDwzaNpm6v6SJ;YhEE46T!OMhQv2yW#e{xmH0!vve_SzSQh?3vq ze3wCcv+gI9X9~Jw?g8EFQO)!;yr(7=?Si2>fg@c%UtVgA^R@wapj&?9;VU)c3hZaw z=AvguXoTAKiGogQFyY_^$3N|Z&EuM2$bE-7}{v!57_sF-lTgm z-v4|B@mN00dYbW4?Tgt3=fWLiJdPtgCPno2r&CIE1F+frrmu1xN8av1`!-;;UU}`; zI$W6J(E16Y{Ln;e!LiHmPN6gf+2A&s~`73@GB)VO~tw9V zhx6Z`0yC?tztM((v}Nl22*zLaD!pR1{34|B_3FLhPFX z82*XK9pAqQZJ@csS*wo(GGZR_9}=nfP;a~iH#Fz0=- z^%sY(0ZUrNm=Tq)-zSV1OP5+JD)oPnl-g)6FUYh+sn57Hw-_;Je|q~}43ol#f3m?X zEmg^r)FRPMDVGB4EUV?`y5#t$TC^MJOL*`~2wS+dPs#dRyWMP$t0=R){$>5&cNEZ4 z>(8HQ0vkC0^ES4+r+mB2tzRG_hR&(2TrK_6+oQI&^ID74LSAz@o^JvRHSHhAl%Pk* zhX*GcqQGqE^&lfCh&XuzW;pua2=JcEM(i@7H|9r$o@vcv{facA#WUR6cU_6LJC{sn z(|MPZ6{r#y_y-i!#^z2?Q76tn>EbrW%nX#_^!z z>J4VJQ$Jceak25nsKv?Ur!}}{(m?(j{@B$O78X=j|0%_@`R>EZ*pKMUJF(tACchqf zC8QeuZJ3bL9kw>$e~stT0h?Y_$Er>Z6i=c%7cb~gy_qVN=f&=I-+=6|HNYEDmSw)v zRdjnpx{SP*mh=uVmTZgstE5tCJ^v5v`Q?}A6}NqU*xbBR&Rf7P&#~3i2cM#htCGP` z!r^=Y08ZFSMF4DT_G(DrqAu4N_f%Uw*;aisWbh4*ZI&wk(S{89qTQyTf`aTpgM)gy z`|7~9gy|piQ$CCqpL0a#UGF95z4*S*XXrDSCM+zrW{F^xysNN6pIf8ZKK0KxOjo&Z zvhmCntloCIu6E1?kFJ<;n>E5dP}*tF_|g#<8)3Cw_@*?pgRz0u=fG$}frE-JarM!f zF1&OrMe8=z=2#y~QO?WQ%1dm_AY}F5|J0tqlk-J)_!Un#?H_LZ36l7!EzIM5xwX-4 zx%s)GjjB%|O9(gYQ8+aypAdjmQY3*2`K<;}_63FOpo(gI{x)oX#8@z6$~G*)&Q;|; z8g_Qk(aFXCiOOGFP0r@M^fY!GoMe#R&A?v*lOFqs*wII@bOwyh%e~)^_Hqw zzO=^H(ehy&{rl6?DD+wblUBJ3Y+c()Kp8?sZRT~;jXgct5-C5JjMiAqj-_e;XB|9lRTpt7mmPk3zIc@^p< z3U5 zdF`I;wv$}Ac=b2E=!o0SQC+afGCgVJj!lyWMu zo9VvGO9KjjyPGlouJ#z7{M0&eJL&J0GhY_J-(%fPyH=sN8Pl-UH(vy8Hr3lg(3+UU zJ*Y^b^@K?y$&OV7ha!APy=FJ~^(%?yUq1T{ve)9SPE@t2A5!9sKMnB(Qqo`phLbqC zGBR#%Ts*>T%gNk#PRyEk<>l36oX+R*2|ME~?&gJl%@qzqz|UUm_MFxSrq5DyRc(fC z?OIJ8b~YZbic_PQMI*==x$D%Ir=FG8xR2;{(P;Xaiu`=E__2$*4bXf)Ek%nb(EJu` zn)*$DeWTk-#4c`2x)3;r^vygz#rqFo!QVvBg$fY+;pn*R$2FoS0hHjD?;VV0F5~j8 zrkoR_OA`EN)C@o33f(V?Y8p&{a`LoKkY?bVgfXqoQH?>toDRc?;OObsL%mW6qR>pDkNirLVsFT$SK`+a@7x5qV z8f51+;?@Ep{I6%_4`|XkRvkMPjpR|q3@Tlr?ZsFdpYtl1()xNPPsTkptb$PQh7tI4 z4pSHK(Rh#WY=0M7d(M9WAeNN6R;Sa6LHdlYM_?mzkgmaQn70sv;G6OmG-pQT#n+ z-4d|Fs)AJ|J;AFq!4dp;Ug#j*00HtE7`_kbpo zTk|Nf*-N>IQVVap83!J*mdrmJr{|JWGe#EDc$1KJhu`%-BA8F0*0}_`GiR56+4twr zxjJ>Xy<}rS=9}9=P1TL@k_v47Ar-A?_a)5fBNkOYTnLKm>QBvmi?~6`TEy1r{SNp2 zgi$G~V6v#=r{^uSejxk9$78+a-tYd?NxfG$!EFz$mN5f9JZw4r(KDU){9Av_k#lL=oO|znhUGHP&7koaIHO%cO%D#KQy%T=U%(P>2cVlZS?*y3V{`IlEG;;8C z7&wORzjXtxS&wB9HNUF?Ya_9S7NM{OdRS0JXFQ|!=GdBORQOR@`)$QJVA(yL2f&m5 z)6=PUPKT_%zNvAwkP=G`B8`;w>E*?N(3M}z>HqZ}x6oAHNE0P$jXf%ud%!Wt<$fG; zFr>${>8FaM+O{x6Tkbp}0^-QHCtJz<+n^_3e0)~RIMb;?Q*WZKc1+U1 zQqH64VF5}z$FM|=C$O+o4<^|Due86r5&0S(#bp8)p@N6N0Z?>6qnW|}=efY30BD>H zcZ_eg(tW|^pc5I&gIl=-{k^D+-+{M3?dIhs>{D$=_YTb#|9MrW@XD%0{B9e70xbDl zHvtM;B~Vay;?^b}eS?K9Nu+@fK4OI-wDOn+SEVoUY1O_S$svVCli$uwUtb<(nlR|h z^VT?TX`(3cFWF2F%8Ui;BLXKVpd1&-%!w;w>1q#|li?e~UL^=~Q?{HCj0ir9-d2Li zG%jDAO->rG;^VkGqo3mbVb4>6Up+;;craohG_Wasx!0OnJ@9&D99 zB8dOd!U2j|6Vp#~Grk7SOfT<~x-cJ!KXk%BFIZVO5}4ounICGZua1M?4Mey+wnnd~ zh?{weQP$oRSm$0t6)ul`>X9G=`0gX9ANn{vIT=D;H%Kd(o}W|pu!E5qyvJ1Twz~9W z0BQ^C>asENB|Q`7!}Farj3srqL<9Sk*-;y|(;LlSVFMW`tVVHGmMg=-b<_J-QTr8R zX0H>F7hM3hE=Kv=>v?b8s`c~)Y)pCvXgg{WOlyxK@8aDn`}+ za(!VwMG9SN3sRQI`oQ6JDGWil32qozJ({nazU^ z)d5CfDQw)MG`oK*ET{ZNI#yQf>ShbZ-fKEzjOrb_gdj3XC^j?kkRWJ`c!QkdUaiAD z20wm5hJPZs%b1VobCZbbsXP4NHw`)&3&Gs|$~x<;;H5<_bE}M5ZWlfI9Aoks>%z}f zmEBt=sIl;zB9sgGh8z!nL$<%g;esSq_MMvVWtbHK31i$#fW{lwOCe-c@1OVfLNcVh z*55xibjnnn{)oP1w_EAge;I`H9zC)q;Ed-u+1JN{ zfi3MTr}b>f`ayz_N0?Iqd^ZP|WWTkfY~3WiH)BXn?BtgeBXLB5d+}r4Lth+&+mB{i z%-@u-YA(^&VPjXMSSR-@i5E{99FG+e5A6?EEy0oCWhg+R?$!v4AN->4oBxjzZO z|HIZ&q#BY~Q z@u5AVW(v}ay9yu7v9$SrEsyJ;L=N0fyY>HhHsyGna^3CzowY8J)L~B>*4_L{@dGQ0 zHYksf)$#lH%%uBQub35vOamE7xk8-!%paB<9K-3G%YQ>OwklJp^HLQ@IIr1`3iV3B zCfcw9!*Jyd&C;6BE-bitACLV1R}1iQK0X%~X|HQ#$!OpR>~M?VP7i`_MH5@q{9Nq} zNd^`EduicRnq_2SqFa9WHz*W1!d)D731&k4S*}hz^iVoWUk+RaqXEiJUk!~7?!zql z|M}ZJ16AAKew3A;x{SLFeDE5==@)S`_{ley)Bl40+bi8R@mu?S_r*Ce_Hg?*y^7;n zL^raP(W#mU+J z3wu<}Gud78=-#iqYL|DLe7c0Cz%;3IA#DNdVGlL;EqyJg* zZRyPfc%6Y-@he|ZJtOlgFH=5V#ji;hUV4uuZdhs9;-vqZ9N4~}?|_P6ilW29UMr`Q zrSN7~j7hr!3_n06cE!J#-d~#>yd^n%-EY&*si3y6CaQy{otjRT=zln4pkuZ56d1F3 z-*RwOz+Q5^^}ILmIkE}}q3w97zokige865edmhJj`|#y=-ItF8Ww@CuR1F>8W0e_y zrI}n<*gF{(&R+47MA7nf#p~6i2dq;*?D8Mo5kz2sFnyu3To-b=ZIPWZ4Ij4~iN>QQ zr!QAyFx{6oUeeX7oxDS?Q`8!s6Mpad1ZW29fZZynv?l?|J007>;ICM>57;k5r7FO` z#xsnfGa^LSYFQDyG2xib;Dw`6Ntk-O0#rzU^l{7%M-G@#<;70M2n|NOFwpBCcDLtH z;iyutDL>y1%D}vG8;p-nDjI6u2$6)N!A-Exz4z+I3~AKMV|)5SRwf3&F`$3>5-yK3 zuu(i*4vnHFvmGuU>=UbDOIP);L0O7d!6n(Y+`)M>D_qyH=DTORQFk~Gj(vt7Xr5ld zE|NBm74(^3xn|8s^cjdryRCPvz%RD;k&*C%t+RjssL{bqXV*@-v*K<{7bOKi{`f8< zB^=oWyF)!VPAv28lvNg*Pqj?$C*O4uF)n6i4PIXPcI&=ZFvSj4sPrzz^je2B z{)|31BctcWusQ4EO&DN?FB0;Py4rYUr7~sZrPej7DofkBh%Ig~J+175bd2P*!zA4hSkDE{i!Q#5;G5zHlg(XmjrGd4>lONjd+++?WGlnZ)9?PoxD!0_}*WEYWsUjWOX$eJC*t~ zFn4!eclk94m`&-VP=t4o^{-ZbE#5krCCcgP)GcCIABKthb#Jc*7IP6I%qRzELvx4v zuV(L>1nm=sw1*h;56b${@#@yHoX4US;u9pRr75^(XY1B6s!h(fhjwOg|Lqh}OXwWG zr$vX1?Fs<^j(nKWARONhxIMN=6Jz*%FeYW&)Oqi#(CzAE{0cL4U9eBm^ zHm9hlWJO56ynpE2pI;a4tBiV#^#T2t?5ZaR~C{w22Y!)7tlr?V?o6S$#LbXmTrj-e!kgaAB2z_#`Y6!jgobP{D(- zNI!+m4T@YIi|-i`CM8kz^->3QUY_>TrXg&${=vqUT{v8_u$2zAecHikQqjI=2U)*( zy2khG&hqtHwmfG$5|9|k-Qsx7Ja&wS4$?Qc-rZ5QXYbVqy2OnQ=5;eh-9?$bR$iC1 zB$eWS%NLA|P@Ikrm?wXTbFIBCC@O7X0nxkJ+DFTBH3i9_T)-9<%~`Z}O} zURW~8iVM#{(q9}_10k|qjPIbmTkpe}5o|c2Xc#al0)mGSOP2?~T+qvG@G1^OM1Gdt^xQcH=!=T ziT4w&H{)pzcJ$UtJ=jfEyJSHPXX#PG#%3MiN}Hvm=y?^mX{C1HCl}_hmaU4~W3|6F z+F?@g-6;yuvqBlp*Pk9<4~IkDwjwy-&#;9geP0TZv8A<3VM|{)|1N%&l+k)g<~K{| zH+JC*uEX{7k^48lpEai8q{*2vDfaOPXpLM`^wfasc^VG4x`egNF+qKb*6Sh8NH=P=ka<@K)Mt3LEx>(A)&f5h4P-4yg@U6?N-2d$LE zUsOmm%F3&MH<^i9sG8rG8gks!{geC4iO_GKs;f$Os`q-e$M8qim_BXRx?cpyy5 z#V(ugZx1{?+I|(Njf|AbJw1cVqjhhINk4Vr2?}A8W#`E<4fHe(|9;2F88uEy5pU`a z_F0FY2UllCC-c)TOqcG7Jml(p0l-`)>k05d7Db`H#%!y|SN6iKVN*K!b)n2Opol5qrK`C7am1idJ@Bf8%p! zP)_GxI{W+c#*f!0<_=s$@kNPRy6Pqm8ph7D3sb<^w=WYU!I&6c3Rv>kcpS=t<$zV* zzxRn{grL{f9gU47!f8AS9e%dsiqad=`nnm;H-CP!0Fh5oa7`4H~< z=aD5vdCEX1VG;6KuC;c0c2=tH7sd=w{egEf;6xX>9P*M5eH}#(_@p4?1#_lQWorhxdr0|QZ%6*8r*L!iWvwzfgd%i`M@avyJ=rFxK2~PMI^k-{t zo~~nlP5=An^#xv(7jXSE_+T03oF-=#_LZ|170jq6mju|AFn%s%oBC-LBqR}5Ib`-) z-jRXf^?S4Bo&EB`8cGI7bxBZvhRV_>3&xPYfA|gh^42Cl>Z%hj@X=fXrJvrg;4-bU z%%)&UH~ZyL8EMT$xq=%@;KyvPF0nrgQ&N;8`F7ym88UiFQuY!LWp4Jd5ju&#obags z#k~G(7Q;2(Yux>$X9jnuRMD(6!$<)ze=u8r#~dJp8X>5{y5b0hk6@RGsbIInA)&UN^)fI}VA2%17gMW0@CGgbz;ThQV21CFzO zWyI@!lq%)xo`dA)&nVyvHuk^(P68OK83#p-VnN2pbp-~a6Q=19@g6ZNR>({r+X~3? zDEraUJQtC14ypc=Ag<==6N$yG1{8{`yge`H-)}30B`4iXPYCKM!NX|fkk90<8Mhhb z*58oJ|0-y2MNNY#X5qc>wdTd?RE z$Dz2Iyi9oh?AdM6fMKHT?T2fy>*B~i1GjHI@%C$L9}eu3lPS0f(Pj)pXH!3KKN%y0 zgbrY8P({`c!VIs7J+IS6>U?GisE5tQ;xldju5>HJjr@h4@~iYSkt6CkLbovzI*{1qG8N4ak_QiI^W z!t+y7O2f*MgWtS@C37%cq?ZAb31S#N@pG0rQlp!3U`$3Mp19@hML#kNA%=Lvu-6>~ zF0dRGWEa=fpPNRp?|@25O@WSbs`4S&T-POJNpUihFM^UA z13R$9OTS{i&TAU3mV?GXqT7}}VqN}@^2I>D`j1ogmWM~{DdX>ROKV!8bLtJv)Q>87 z=%mdf4%YQqf7AG%=Mj7^>gpZsd+Wybpz1idXq79iH-+B?WQ9S@D9!_-H~9q2&_sWl zPv8+%&~N{f+c9 z=hGz5P%*c%hTN-tot}%*-60?nGR-C-@mkJI?x$dH@Bmg|DrzVDtm-FvLt|`{J;Pr6 zE09QIWu0!^VA<~?Hg>5%_*)pydOW}Q4C@T}8zQQdATn|W61;1C!3tJ~$!Cl84o5t9 z3l$%L8xBX@KF5U7v;TyJ-=LakklK^y$J&7wNgVk3@540>MhjN(tJY}|k7e%>nR~8( zUgpb^YOz)pjvD9b#|ek&Ws}b-Fp;F>WPOYbUFabfSmM!kL9Z3LEhN#{8Y`Pddy`uQ zK@?46SBC}UHgkmMTuShur(Rg}&7Qb0^9z1$!=*kf1-vw}l$uDrpR^k2lau_$X3PE~ z(o0hw~%9P9hko%#?A1RZ5~N=&7{ouB|LTs4%{7 z4hjnDX}nMK3C+|mb~{OCqLUzbGiA zUXW*gBC{{iEW;DT#uiw<#k|<8l?GAjySiUI2Vs6bEpl^tddJN!^)lH=MRw7gR_Cak zPMB8>TAV<6eyFiuKDtziP3NlG(IKirWv}17bC%?#yukaq`e-9YoxpOPk9Z~Tt)1O7 zto79M^fN^b`A;;F_iWB^z~ix_-@VPS5w2r&>kan$JIRMl5#gkr;SDRCAxI46QczL} zuML&s4H;>S0iUSf9v6GoW^vzEmauq}Ktt7p{0QCT@7&_VW2UopYm=FGv!=Q-Xe z`)=w8QR>9c?&?bIA5BdQyiXYU0epO4w`1|=>(5E>FDOxZfalM*cfQ_= zqLE}es1zbZ3+Jc<8z{~9PgoOJJ8Cr{CxQSyOBLg6c~@S9a+G6L9_lOKA)b&d3M(!mvYP;szQ)mdB6D zB*dOxpQDqXyH2ST-twEnQdviShKjdfVYl4FVD}mEfas6^+8y3ip4GVihiSAI=oeUA z+!(o*AXKcUX_&J|zIN2W=96077CGMDAyuhwI61U)aY;mj+1jG83W1MX3U`Co$LZo0 zTB|dV5#lh#IyRJGP5Z6nLSG+AEeQw&%Dy0XJl26dG;wT{HD!)5h?ZKUTfJ-v-|3c4 zLiyS)aho!uqh+eJW?45-0LqV|XJsAcR0zJrH+)g!^$3CkusL%s&>w zhQ4>);}d$;Lr+aVY=20*p`9S07Z>0bx~HRS_dlS;2K7lTow_EkSICLC+Nv)MewCCs z2f>W|Z@b?yEzun9Ik_BPxag?K{FrM^Jae>u4EaxwE<$zQY{h0O>UV?_13Q-CD7BzsHNus;X@CDVU)|_rgmR05R|lqa(3fH3=;%oC z;>V2gxi#VG1e-yyVJLUlsiv_;T=eiYNDoaFcgSgsKp66)Ir0zX5H)YM{lw@dx_VRv zPS@mrdv8qD+XF;Y2>rA`RXwk)!#8lc*JaqpXvruU<$i~INjjTH zM!5f2hE^YUzT*4s9M+;BE!P?O(>JZ))|dYunAr0_R^p4~ldZJfIBEHiot>R5!O|!- zk&5ZTW8z^>9_Xm1?8}S)FB`Er$=>Qg(8<_3@N|wQzL({6qfoh4tUgbiot=7!8oe0h z_wicyu%WY~p+XT5fm-=uHP`ds8c`TVTF0K>3s%Q8WcT553Yq#f9%Xr$U3{H?Cfnz^ z`BhXns&fe-Ji0I|HW1KpV|iNSa?l$^Jo{3a1veqAT9sP8>Cz(eF#ij z)tQ^?>`vuLXX^O=yk!=D>DSLgy5uQc%bY_dKGJicvlEdzm0vwh7@^RegOT2eqy@FY z6pvU=K$}IpK_B+9b@U}FK@k-i4<~!}1xV>QSMOvLrm)TSSdaHGePo%wuKA|5vQo;5 zC4jA|U@GAY;t-njlasTo?C?io{zu(yxiH`m*ujqZ(INc2O&TPRsF_5#IM0xB)OlcM z8foM1s8uwIQfXf7XFsp@m+<+V-bDCZ>#;B*#?WY3)(ydC@=gT>8)ng#BS4+ATz`E%T(i!UQ^8Tdy z#JQ^!`u&X)*V3~djCuY4NQN~johX7~b9`3vVnewV)=#S(Q7LoHQ3Vx~jvvfGxeivd zqwuiQ7g8x)SA^l=;f6*or2ADiP1Bc8&^0}PZjOjkYg=35DbB%Z8tUVifFmzws7<7M zJlo)P;(2ni27;bF0{yMW_k#C1jZ>PN@8FG9Jv-;4LRX`s89u*}pL&_x11b{KfzCa}GUQx8+x`xc5jB-Z6 z5GS+x^_<#kUV>TLP`-7*AJ5WX;}iUqQMFg zr)M(?UqpLSK&Xy{2n!xIz;(JzZR-RnsNxk9+sNB(Bi`quU#ZS+ZT(c-jFt}&{f-p9 z>)e4XUB1*A5t?0prZ<9Tx3-_hvlZwgDv-f{cC0I`<-N-99FRZ;JafX~_^6lo@PUU5DL;_vpgV4wk z_$&w)rx{5Y={Fqhh)~=!>zR2D|GCc_*kc`vR#q}$>VCH= z?N;4~1(lVQd0&Np`DGbe%EH*hg|wxEb#&O+DBZPJMw#H4_vokTB~Y(X>IF>(w}2^! zbx_Sk%Au6V-S+#lk(QPgYJwY6^?|I|4!btEHxcmoEB z-P^A<^VXe&_#m1ak=J5DPv4lQ07}fsS!B#!9r1Qfv71DN+3 zquwX&cfyGTmfKAG$k71%`h?`+=BL^8N3`W5MyYk}V zvOY7FK1=6c<)m+rLxtu$Kowq*!x^uj@3F)kB zX)n)ccs|qw|482X?sUPSps$uKF3FO#tJ6W*uq!Ye9N zvji^JJKUXi>+vD(nowaCmaykS^}x~G)&WIA`+SXe4AE7^#rgTSx2H(tRAO+E#Rq>} z92{NQ!)UwEn+E@VnIFc;wT`8=wY9i7S$SV@D^52mN6qMz!Pg8-@=w&#iPjeBUI98d z;OISktYNNR6YlHl!^G%%e1&kqKnV1hoYE~VNKCF|49s7m10TooPj5Kf5U&jbu0P{w51+^W7kYDZFB|%olh;eR+P$37VyOxUJBpQR-RT zIazKw&=49z5gqZF{DKz!uz+VEWf?*DzgmDG-|M5z;1=pafT*XZ1}{VSAMe!HBgAfy z6&k@LUtb1>?ruXvB?3vupcZ{2HyPAu^74`R2vtV3xc$pf!}&vD_dN_}J^VxRP)i3R_Fk3`Ms_3Jhe7uUC)@u=z661ccmB~XYDkusHk-vP}>lrptsX_3X{(ry0}0lcDmi{ z8UB_EPh02PJ%=B2Qcs*OXlh1u8o0UariMmHSy37=qp7JTt*$b|jm$g0&V{doueMA~ zR8BD0Bd&jkUt1qXr$WQ=?EUjOotR_=FUI)hK#5547a_<`;utsH^I1>LJKWck;8pof zd02K5ZDn6=gJy5;RN}*&o5eqiy1E@T!4liv-q!L5g^VbnjkA+ft=f{q6COKH1-M@5 zN$`=Hsa+?5T);k93&g#f%khAD@hx~QoeI%kB3zs-2I1A+!EDoz5bHR<-F+uf`OPQ# zcQG$(4aTuS)=D0v2DZoV&LvdS>CxI?(P-i7T6{K!rn;6kl5Q|H*?l4+^|*%f!FDk? zH@7zJ*Df~vfKLEwrVAn9ko;OAJAL^!=kD3VvR2clhlSW!z6Rn?KHt9e8aRo(ku~mm z%+#SEeKGK8E?915OVn6ArY^mFQlIm^uB@l0=enVxj>lX!%g4z0>pu(ny1L{LAqt@z zC(o@GI@xIrFWtn?BB`)W{Egr$lN=Lu87nKEjVPM^2_i zzPo8vucsVjr}p$sz0>lcbF-(1ArjcrTc_>j;QdLqt-zFDLR_FOz#MtL(nT9j>uD3m zE6;c8{_#=fY=KT%N$GKmO&>+QW zR&HbBy}X*dPHm@>?%VHZm&QjYCe(BCqyj9#E|Y4Z$6tZGr(K_{%Z-hzbW#Qh*LAo#uGYcu10|8To!tW? z9%Y(C9vvMfy!$40aR(g<|mQj}h~&6C8AR+II!^lYW%{WGY10~Gw1t`|Tu>9yXK|MopqcIo*- zhSlAew?6&6j~IlBKETo3+_|=(px}mX%zs%5Js?bmM^SN1BND<70u=)OBFs-ecSj1# z(waj%UhN`}JKffN+fTRxm@2g37`^0^%B+hZp$B*# zkMPCu)MsVVSHdQNqI^if6Z+6*tcjewJSk~NK;RFjLHDDU#Lg*KXUJPJLbV4212m244HeMN3 z{{@0C`iBYG-E3nPzz>**ET?jhQs$$~`|F7z=^GD`_ZY~50Yjt52c?HWd8DT(rDy(Q z|1n`c;Dp?Z^X`LUfTV40TT_d_YzFqJY9{d%*UVxp{T@kv< zhHun1#C*KK;{d3`pVJ4y%M-r_RcV*~$skPJ2z=zNCJ_=O(CM-6t;9>s|<7`=N z=Dl7RvI?~ZGsi9X6n(4b<1A2msB8P{PIES;?sSby%1@)4LL0v7Q(APkxf9U|2Tiuo!_mQ zhwuQLmsOQ%biUs(>E53%WDv4L(5|qN1^3WW+KEgGx@fV~JH~rODpQVG)?=_#dBc9YrSb5cjulgre zrTk*o&lWByx&rnC_V(CsNr^s?cz)2Fw}9bZ7SvHBPmHZ;Q+0|MKP8nL=i6{(8{N+K zW9kW3e3;~s(HcYt8St)oZh3y$uoCEOsE>cE^7Qj8$-YzWw&ov@zQgO5d-IGCg&hvi zi6GV4VB92Kaq{xfiE02<96&~g(rp)aVmRAjdTI)26pl~g#qE( z+07uw45aref}KS3+Dc`~3J+P%cP|5w)^t~CPG_RGL|;pQN6*2&3?<= zl5qrwQ&0JG98HO(+Bu$P74M-AuYo$4-bXhm5|5)drpZ7hT2y8->E!P z`1Q!ia9J0f%kB=hmw2CDm^NkqkGXr7ZbJ5~$iNmKwD|R*tl$LrOlsU8VYOmKzW3fV z1696O^n<6VTx7>CHRpnSR+ay7N3TvdoOF`$>@p<$5W8dV*)wzg+0Nt0yM&!vyM(mQ zY^+;S5A^Bq;vh(q2ig2p(h}lNu zbkw>QnrD9bnbMG9^gSq#_j7p}Fgpx$Ali4}{rktmBO{}|-SGbwqr=ItYCh9;_k-J< zEWYp`rxuI7OU-V1TKz*&)hHO3`{V8GzZHZJ8>;(Wo%>Vu}5i>%=%>Gq3lB*LKDboK9mXT!p=>g$EINoq(* zQO@{U?P70qlh@^FL*4x0jU^Pa&Qo>3GfCrQy|KMT`NhiY)`I%0h1CxG_TH~5Elk-4 zfnpxRWE{Xqc6LdQT_YM`v5@}u_VKw%&J`OR9qi~xkYrfeEI_lqmy=xq;o=q$7%6S} z*+l(5(u*WDz91s!^hZt(%Ev;S2T&e5i@i5(K@mO2aO259e0i~!2?_mdmre72KRDCH zevU1?;xAcWSvX!FC3|QOStf|j z23xaq2nFg;H-8~dUXgan_TPly-Ud+n+ z!}qHB=%{~LvoX$#b_P5<7MG@tb<5H5nu=-ipjj7_;Fo)OR;shZV0t)$^gGJ9`$CTR zQ!T)fw%*Kqy=7sMy1Pe>IyA@&9X1;&DQ>n;Jr!7!cXqm3re$Z>h~LtJ2C!mg?)TpN zh#!#hob{Se^!$qJ1|3@7;brh56x=LcPP8sIvqs$6R1JPWC1hUwU+`A*n%Y?OYSGH_ z#M3?ObOPE@h-msL(RR6B4UKzgSOePqBSc-PjyHRO&-bQlm0g`o925R99-G*8e~v6I zjlvKbp#+sohm?>$6|1LGmc8V?-df+@-oo5F;$Xt->D8@L5?+-raxfC^((Du!om=R` zTBl~m>}+xzB(cf|eJ_zFDypc|!GjaI-*nw?{&jom?Y7zQQ)CF-nh5%^-!rGu$wVC2pG zJT(C&y)2=_=*t90s{=}>ZTT?XwWXyO64Vh9A!l#6SA>LTWJ%7;o#<&tlC+E3WY%`r z=P3g=MA|egXE_AOA8R-`P%sH0q1oAIU{Oxa<;Ks7mO~>3+C5^t<8y>5s99774;Yvi znxCKYnShfNQ#T2P<=iUsT-O`2wMolC@m2HA2MZnu|z z59Q_IL4#-nLicU*9Sdj6GPwqvrYWITzQCL-feowYunUfw?>`9fu+Sbe<|a{ErVW(+ zy=|G5k2D3B7@U~+{rmX%Ju)chosTj(jK`^y>_PoB4+ zpXYS=QFq-9o|QTw`S*SVHRBOlqx{#0Z_8&{ovweH_<5{R&y#)ns+e!f|Nf)Kxcb=~zKPX6c= zU-Dl6aPsq!;EbO;_)LT#nII-*WNp3M4*O>YuwBT0nnag0&b6yu@PcUrkTWL6jsfz*u~P50v~P%@Hk!d>l(s_S{x&4YZJJl zvWY91-GhcCq+Wy?eZ=c>Iy2?8ZJh_sURwmv>^Sx4-}Av-l^jiI)NXcGq+u>KnDD|x z1O^)Thli()eN0qbRn<7!^-Efdxr|`O)!k*xo~E2PqMbvD6kI#5A+@@m4J3$S5U<_ z!??bu6l%m7$}1licRCCn*AmUkq|`us-Dd%`w?3Uu)$QF_iAl5d#vTvG9q(~4G4U2x zeNkV1og%^Zv*d57exaDJkE|Y2!Z}Sb}K9zaefwj2_ZS8YH7jVAR5cIHh%vsQhX4pNT!)HKM%YwKdY2Q0@c{->7?#=>Z=Y1 z^dmU-M#AZFodZ5y!^E$!VS3zMq>I%ZAph)R;_RI4jBdyDtDCPQGzOPjZC;T3-A4fO z5%Pr9@sym2xSiJ>Fp6*LBPNBS2-}AzTn3%8pzC9iKt|bn8F8b{?Cw^r@es_4bV{`} z3~$iFpCFL}8++;`+`TWsY--K2grRvIWHqMR{Ot4A+nMQ|`lP{`kPKK~c0%##Xw=*H ztr#q#8sqs_Y{z#OyR_RB+H- z4$4unh29CiH$#bk+a_s9{wg==Nmb4}IlF%S#q_19shNiKsc+~k9uf#Y1;f}4I<66` zT3Jnl)>pzQ*)0me5FvJmcsOQ6`0w3Y#@rXEP}Wm>;h?rE+VSE6)vDi2@5a#}C!!=I zthS6b>(aU$uxCe+jXAG|p@*WwA9F{mu$t)VqM|7L z*C!q1+}!IAlRgW3w%;q?b};XqPJI7%XAwo9H%3Gf*YIhu%BgAUeP(t3^C(2EPKe5q zQ~thIj3TMM_=1qI?iv(2KaYZ4sAyjKpE(5}zjxkwkuf~6w;lrOseA5UTm=UFb19*aer3Agv+&jK7GwLf(;wi zEw0un3g3gRW_?@MWOJwxkzHL9E903NsL4HUGQ7gRO_tj$f6DK(EFoV*8C6L` zfiC2rdW!pp!9mCx;{Fk;iCyo8h29u zc29w2KV$-UvwXyu8wyWWZmxuf&WnMG%!!|X5}ZSx+gKUtIqjW z$mGlH2&TsJpqr!!L7R@$8r|OTsNw@jCr7h3@Ll@NhMuiOfr7EN7Ms;5ME1O3!oOyA zEv{=q!l7n6tM!u`=50ZDb)@w5WMz?5mzLyx?-Aou=p?E88T9Eso|yiL^>%@j&vfO& zTa%D8-EQH2tjwhC+Qa0ku{!qsM$lx2NmT9H2LS;O z30=npzEB@7|5CCZfS` zs%a_>0vqmu^horh&s%ya$R0gDo*(hON6mPYsL}|ffo|wQdJ1a<*2^U&Lg#>oo5Zgs zFchK~G zg8kT9satbib7F96HD~U~_;|)RCAGS?3|iI`?G)gRc(|}2>kNQjK%e&i-A@QcpaPTo zOUos{7DW~?-rliiOwbj*;_dR=QR)o?z5Hs3*y8e3P5q3ffuP{~o#bq)&fwSQLU+b^ zIf?@A8e)_ST`f*w09jt+JExvm8?En0FTKM03hk-ueGE^25HdMiBI?le$WZ|nc3r^h{{*c5X#H_@-j8`$K6P8eI0co!*lpFoES3*QBq&W zt0HA_ZlJaEqs^|440d?H2Sv)IoOz*^@Odb-qQ?ZER@(b=f9l4k`mT;AqP<(0Yw=Im zqaNXi;rF57c!FBfktqS?iQZl&JvD9l!O;(#Jj3(hd5;CzxSsZr2@!_ohvw+hS(DfN zr~zC<{P@-Q03U~KjagnEjPw!7qmhG5_&ZGAcSa#xOTO+IFBY=;`P;tpJt?YKU2*?2 zpQ}t-;d?wA_Y|2+zqV*S5#V#t>jXf0-|gi=p0?s42Jfc(X|=n_=R> z9ZZRjmO+~Ic;W=vvETRF zu6E~TYrCj_4w?lVM1TkVZG9j=L@#Hy#@>o0d1}-GZ9HF}8`(%Ojg50KrZaj4+@i`{ zfS_yGv%D7wnQf@Z7gTGl%^9sr+^A ztNsN|%n<4brD@l|V`{Yqx*;*~hj6W^8|oY5R;>XsRD)%wY1-*~bIs0=s-jy| zADlrem(sAlSFa6(Lr%j2439^>;&6%q5*oqcmM+fMP{oSpxed3h;=pC=i;QP`U&ggV(czJ*T2u8 zGzWqrGyRnv&8E}0#YXL`0OXG+C`8)j%~ipFVuSA$BEP#QUWs+=-D@pB9R+%8w0x%|O4+LZ%`Z{-b}gt&S%jg5(nNXWpJeT3pbH4BTf)s(V( zZ65$Wet_VHqCA(BNaf{L^mI0bSZ=%jJ)Gmm87V+^;JqVs&_Cr7zx__cQ9?2!6}bWF zGq4TK8XLA7*|zj@?`&l#T}0h6&4ZeF8~I+_+qs_LF3s7#zG>|>`45>jP)c?H=plLe zD;UiYeatvAyW0nk<7|cMk7UU9M!tyg1tFeUos6xRM`Y9@&bU}eJ>B+4AIOTay;y7? zGj6_RyW#iX#H=NDHYo~5bT|{t@8X~4PnpR_Xav6BDkzVzV1vlUGY$o0sm8y`(Xly*kiY)9{iw)1f%mKSr`<>U!hq_q-Sg z4c~9fF&_rnejxY%w$IKQgE-GG5*|0e+##%idQQ0?dp1s2;K2H6XtyG%UrsV~p$3KE zDyca@tf_TC^WSQf7^8IGu$@`wIw+ve^l>vDX)d8txQK+I$6IZgU4)X6bq=pFGyhi% z!@*fJOd>!@an}8!?v*%~*=C0^;CK(7w1cP<0EKM~Klk^E4`II%*vuN2naGv7`w~jp ze0?DKv3l|m1A(|dT5WS+eA-DN(#Y)#Psi*n z9npt3|4Us}>$-nPIrMpfWvxb2^dso<{4O1@D1$EuNY@8`Jo}HbVauA3mIS>&! z44yuY5%F(8KRv_gjVZ7Ys~oMYJHPy{6aD>fN&ega6PFce>b&7oBVa#PC2+nA?|en6 z@qYNy4V5pZo#V(;qof_mk&%k=@uBf~pI%{9|>22d07ZjaQ6ZFkjoasHnUg0zY|#AF!W8`gT)O z4Hq$Sb7^*li3Yg`Zrp$7#7OqQZLVVJ6&JTtH7{p(Y>e1SVFAF8i+bk^@WW<%biVk| z(#onjgG@Ov$-@CxwBe@6ehD^f&@IB(i_;=UN$lO5l70aL9&+>2|_?Z4moKWK>p?DF?`Y z*l`8US9XmW*WJi~s|Sy6fca9GygWQNzrW9ZrRtYJj+;StwxkYb zodf+rdBkJh#SVS%g8Ab8WkhINMXNMA*obbIGj(yv3<&TvmzHK@6XxXN*=z)|pMdD4 zoDmff5C8TEW6Rh|`G^QBD~HSvcK&el@^W$tD@ltW{o#xkjQwnI$OcY1sKkapfFBvK zW|5R+slG-xUilRcm%MZH5t#4Gmq34*dj4$(bkS+?bpSl>p&(oZhRf!MTZV_{ZGr{=+{-}56 z)l|{f*hDp|L3~XOUH2?)xGso~M-QJoc?s&{=}#}#N>Fk~jSdXX&f-I(zKU8pFd|Z| z48nIY?MIw%UXF>eZ>+q0gyy38YM82L0{T2f0DkQ3oE)1R`=wvJdh7autuX7An=e34 z)D+=|)+;Ui#%`&%MgTu)e(IgMM$Pv0bbM>18G#*tvBtaQ<<_{vKkgb%*S&b<%2hO9 zLVwSm|ME-L+IoD z6&HZ}L*=pg@Y{3g>YZB>EL-GoNDGR&WQq%zn~O**u|eRxH1WrV@B`;7hCK)A=?;xC z_|6=(N3G484=yu3h>H~n{Q>^K|30}7?)TL%Yud0IQ#3{%`Sy1Y4e8O9n&8#gt*lJa zeqJ(hQBkTn#=e%IJQ^0#es9c|AK=H%$;Gj`p`XdcOINO**-A?%xY?xzK)FdPDPi7# zqCl$WfXo=e%nMG}1@z%dORIls}(@~K6|ycZiF{?{9JwC z=y-SgP-j;*eY2psw&#HIAbFRlyxqHfD=RY^BCKfax4j1QE(_+%&c4aYgJ%}UV+XTr zvBN9ODnbc2s!t8*4_CU8#2+|cGF>;_rm-#BDn@Kw8plHxRx6xF^Ch`wlKgX8>u)6J z2jqv(-1amT_DHJJ>9!qIf&H-LYhnq?qc)=&LccZ@8yl+VAuhPYd^Z(-LZ=~oIUT^V z^$s@&01iSIa((E0IT3y$o&nhLr%pY!Y*b&TxhVFu#WF_;{oTHUn`IsV{_d~C#*>KV z{_gJf&aSSWvZ8`CI)7E%{3@zys;a<#mcH`x8K^u|R8V=;Xt-o%3VM2)zh%Cgbohob ze9>mvq6bKiik!)8abX;7&+kbaGPFHi!+gC2Rm^4FEOX%kuGIqby$$O37Ou3saeqA~ ziEs+F4*~ggVXJ9#v8yM&j!oPuFVDo%H?~r~fxyq9(MD8GPF*ZhP%wZWoiE>_`EJrN zg6R45X;GFffAF;jpAyw>PZEC`0_*o$i?#j~*{FJwrarFRzIx}*t?Q2--f&ur=yAbhJK^aJ)wuc^@h_7fDO@-BSrT$?I<#ZTb<^=^Ii zVcuDIq2UyqZ@_wXR&rO6%|_HxOEBNBFJ1)vUB~QS#Cm;8-|()&vR?AeqoSfDm;TmF zP8TZ_zM9x@V3RH?r?HTA2IV2l&atWR+l%4zy^PNQel+PT%@4t!0NeUHlr%D6oZ9Yj zjo|OfrAt?@g8zNAep9@pC0bf~o13$;NT;)7-YU4AO(PmBzKx{Y&lGg8IB7UwMdh)X zd6zb{-)sFWpTXhAo)_@G{QPX|y>T;Qe(Lf;#2?TfG2hci zv*9o5IQWl~lb^+IMGXG9xHjM}Ih=5@Ahpu`I5FR|_bC5+==Hn?w2|;U5iuU!A^q@lwPFd;noteSBaZg0GBpJ%Uq1ZC3dOIQazw%=!6Q z+1LPnyqhL`r3Z-rux3JP700w5_sfvgmcs{$`6B*k{`YH+4fzZ%Zpq2+=zIMPg7J}? zkm+hY1-mpqm3P@h<)MJ`?bJa}CZ<+FJsei=zH;rrKEz6n^|D)>R-unb8#a4HVJF^ z!2bF9VPd|APLSpU@V{s8ZRGp_8y!Dg1MSIv5)z?#B3tGrxtj;( z;Q}v5GeJeaRx28*KiAp{?ssrm%kneDDCtzhM1iunshokZ>js z%p1k^@=$kq`RM2fhJV0+l=;%|hYtAo=JXAT2@&$k$MFU@ z++{~yLL&!*U#0m7aUlCGn5d%ncoytw@9qZtf%lyro2AV6Fp2*Fe+NJSZxZY9MEjG; zR<5o>INT+v&LUUMfw9Z@3S%8(9g{PC>`YkEt22Z4bPf%*kM~pf>!8ec|NPX{0{*f# z?X$7k`b*$sDC?%0CamZ^p@mI*Iy-T@bblYhCv zZ~6H6$Vh!XWxk+44o@s305>(_=crb66r_Xm@mN}5g^0Emz_5GBl5@LP*XBfS4JidXF8ksRtqp70C}tW z!GO=5YgK3BioPT4Q`Fnr(^Cle1O6)?rX1=YhB>#*K zc;av(Lwr(!C~C0P&Zr!mZctk*9}%G`%Em~Sxep!4_~__fCa&l^q7_xe;o${EMP(5G z5&Ti+OX?pO0M1Oz49GLaXXUZ61@c4Tu^Y)Rqagwx_?j|Kf=!?YFR;9Pw3Z1hx{gv% zVsVyJcr)?8J%yNlA?DjRa;|lHx?`47APn;hW|NnRi^`+cDadDJL}+e{Zc}L#W0Xpq zS<{|9L+$P5SQ-xNZo`qzHroXmq7t{grH~3>b~2Gg*YVQV-xXF>mF0x^1NqxSGvD!k;6HT0(;Z`j zvkc`*IMONMA)gTuQEe3+gVPN}y2`uY`NRp@^U z3P699(aaa?AHaW931pVRs+ZCk;CpLvs-I@`He9E$y{1M^BU5CvJzi~ZOA9!VuBJLB zvgkSHe#zSU`e9*I_}APF@gHTrL*3=w{SW|R{v9o>^lN+9~HNGyi>usN3J62C7>h&$`L%5$BTa$)TwKJ(1qAr{r8h0?QrZ;`0W=0MnM`QWaUz0z zLfpNROZIB(hb1N^7Nh^A)jzsWfONNa_m6`DX3!KWkGNGdwMa{}M#B_G>I#_STs6K; z62Zz=E*RiR7P$#?ZAJ(v2m;Q@2_u;8Ol;BdyR-Jw1NZ^|m7xFKRgsvuV7|SW z0PO1AgBj@V@_q*1N+Dtck)NoX91$J?0-pS=I8t|023r|I0G*hX72X`o#16%$-5 zpV-t?3V#s)C6_<|Nc1l;-vX)t*VP0HWY5qLgO@LbHRR+pTr$N8`AM@X;Tpk>pXki3 zpslYD0Zdhv4>uEBD;{;p?BHMzT|d7dAEH0BOSBiw7aVXw3(3GV?P==lWb}xnCMzDXJMCOq=5Jf)&>3HL*l$4+;5Odvo6t;R&xif6Z5ih_}(mR7I< z<$nQx$qVKS{8vmlV1QpwPvO?s#>lNi7Dy|x33I)P{5A}QBBddY-pR>;zY--Tx>h=( z)@E)gIz~nm{`4sPEtoF~;HoUlK!XErDf8YcKNPPt?y%$|)9g2z{gQlqd>qLIGMf!n zJkp_3Qr2cV3PxIzOZbmwzKFlXVxmC8u?8%^b$%``HZsw4Sb}1|ZZzB-sV4zFGUkLMY?@C9- zSt89pP)f?o%uPo}Qc^3M#($Lg0s)q2QxRYy_CRmBCo?=7KFprSaNz=dB$)78;Rq-? zJBOzE`v(S^nPL2AB$=I>`o?^{sR{^*0D%FE*|y$KxY5ERLn}Bq*uz7&wA6?BxOaua zF6$ca918sBZwUOi#Q##}>*!8(z)%F3m>9&ov6YUnnO1fxb%WN-dfN)jkh4$G)ipjp zpYR_9fXIJZZ_Jl+zz_fe0b&tYerx}<8}UtY6eP7I!GQq&s+j;={%liL-lwP-@0<_( z2l_*b(jSZFODZ5Cv=%^p{jgnZpM%M*>sRMDOEFR~!U~dy0tXXd%O3F^_R2z$g#QqK zQi0a!f8Us|-a-j386+?OkU1x3#p7j$34Dm4vs0PP2FoA5ge1ft_+Mwhp9JuqH6~yd z%~zLXV1iJA009C6W-#w;g(GI|=H^CaP>q<&E0@m@?5<1NVP_X9B&6sXA0JBMKPe(W zXy%Im^efe)B0vNnvw*phW3Q94Hghx6fg6-mWnRa!CpuTw0`R9y@aIb6KYx@T3+77# zKwUq-(x6g|0NuR}n0L0qu}L!o0|o>tC@6?9uVYz1;pJr^TUQ7ChyGX5ITQhC=>Nui z0f4C<21J2S5`^h{S2!F(Y5swRfo5RBI=0N~SnepPdD-UX%F5Oy+1W>8{0IJ5B0ueo z`O*l`fB>-6CnzX{jd^R!A5B^Y0XvAqnb)z*;q{G+v-L`_K=>`<%I1PJ19(R@JxQ!UUW z2Mr$BkEwf?KO&exbtWZD!$@YmZJEQmJ5Mza@dx~e{ul749ElA0#(YTzPyut$*;>H} zKn3QtG0&PDu3BTjUzDnvjIFH~`rjlP|GhEaKtm~OtbwHHNJ<)!HmnHdy)n;P9PVwF z#wI3!zny9_aWY zQO@L4cLi*3Jb5ZKT00000NkvXXu0mjf Dhv;)I literal 0 HcmV?d00001 diff --git a/public/images/egg_shard.json b/public/images/egg_shard.json new file mode 100644 index 00000000000..84d5722f1a1 --- /dev/null +++ b/public/images/egg_shard.json @@ -0,0 +1,356 @@ +{ + "textures": [ + { + "image": "egg_shard.png", + "format": "RGBA8888", + "size": { + "w": 8, + "h": 112 + }, + "scale": 1, + "frames": [ + { + "filename": "0_0", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 8, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 8, + "h": 7 + }, + "frame": { + "x": 0, + "y": 0, + "w": 8, + "h": 7 + } + }, + { + "filename": "0_1", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 8, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 8, + "h": 7 + }, + "frame": { + "x": 0, + "y": 7, + "w": 8, + "h": 7 + } + }, + { + "filename": "0_2", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 8, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 8, + "h": 7 + }, + "frame": { + "x": 0, + "y": 14, + "w": 8, + "h": 7 + } + }, + { + "filename": "0_3", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 8, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 8, + "h": 7 + }, + "frame": { + "x": 0, + "y": 21, + "w": 8, + "h": 7 + } + }, + { + "filename": "1_0", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 8, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 8, + "h": 7 + }, + "frame": { + "x": 0, + "y": 28, + "w": 8, + "h": 7 + } + }, + { + "filename": "1_1", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 8, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 8, + "h": 7 + }, + "frame": { + "x": 0, + "y": 35, + "w": 8, + "h": 7 + } + }, + { + "filename": "1_2", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 8, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 8, + "h": 7 + }, + "frame": { + "x": 0, + "y": 42, + "w": 8, + "h": 7 + } + }, + { + "filename": "1_3", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 8, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 8, + "h": 7 + }, + "frame": { + "x": 0, + "y": 49, + "w": 8, + "h": 7 + } + }, + { + "filename": "2_0", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 8, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 8, + "h": 7 + }, + "frame": { + "x": 0, + "y": 56, + "w": 8, + "h": 7 + } + }, + { + "filename": "2_1", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 8, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 8, + "h": 7 + }, + "frame": { + "x": 0, + "y": 63, + "w": 8, + "h": 7 + } + }, + { + "filename": "2_2", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 8, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 8, + "h": 7 + }, + "frame": { + "x": 0, + "y": 70, + "w": 8, + "h": 7 + } + }, + { + "filename": "2_3", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 8, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 8, + "h": 7 + }, + "frame": { + "x": 0, + "y": 77, + "w": 8, + "h": 7 + } + }, + { + "filename": "3_0", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 8, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 8, + "h": 7 + }, + "frame": { + "x": 0, + "y": 84, + "w": 8, + "h": 7 + } + }, + { + "filename": "3_1", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 8, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 0, + "w": 8, + "h": 7 + }, + "frame": { + "x": 0, + "y": 91, + "w": 8, + "h": 7 + } + }, + { + "filename": "3_2", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 8, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 8, + "h": 7 + }, + "frame": { + "x": 0, + "y": 98, + "w": 8, + "h": 7 + } + }, + { + "filename": "3_3", + "rotated": false, + "trimmed": true, + "sourceSize": { + "w": 8, + "h": 8 + }, + "spriteSourceSize": { + "x": 0, + "y": 1, + "w": 8, + "h": 7 + }, + "frame": { + "x": 0, + "y": 105, + "w": 8, + "h": 7 + } + } + ] + } + ], + "meta": { + "app": "https://www.codeandweb.com/texturepacker", + "version": "3.0", + "smartupdate": "$TexturePacker:SmartUpdate:d28ddfa7ea43d83f7c415fe743ad8fb3:92f90380cf71cf70b7a59587ffa0c331:6484c4b1ce9f71db2dbde6884c7029e5$" + } +} diff --git a/public/images/egg_shard.png b/public/images/egg_shard.png new file mode 100644 index 0000000000000000000000000000000000000000..a4084af17e1ba2dba249a9220e87a046920ae07b GIT binary patch literal 402 zcmeAS@N?(olHy`uVBq!ia0vp^96(&a!3-ot7911>QpN#3A+A1|g$kl-5)u+X0gr$H zR#sLHVa5O7?j29~A2Io+rmk*)a)zjBR8)|oX8Oj(j@QrbZGQeEeKJrrV@Z%-FoVOh z8)-leXMsm#F#`kN5fEmas?8@26#U`o;uxZFKGiRpui1ddJ2932#f`uI*4AD!0e>HR zd^~+7ho`vb`DK5D4L2VB>1NJ3%^$HMmVx^=N7G#Sa^5awb-h>18_rx@ylYczbyi~T zJf=hPCw#e!1-LzD+HwyR$V&#gm8)78&qol`;+0IJ!j-T(jq literal 0 HcmV?d00001 diff --git a/src/arena.ts b/src/arena.ts index 406fd2bd4e0..57cb389d0f7 100644 --- a/src/arena.ts +++ b/src/arena.ts @@ -449,8 +449,6 @@ export function getBiomeKey(biome: Biome): string { return 'tall_grass'; case Biome.ISLAND: return 'beach'; - case Biome.END: - return 'wasteland'; } return Biome[biome].toLowerCase(); } @@ -475,6 +473,7 @@ export function getBiomeHasProps(biomeType: Biome): boolean { case Biome.FAIRY_CAVE: case Biome.TEMPLE: case Biome.LABORATORY: + case Biome.END: return true; } @@ -511,8 +510,21 @@ export class ArenaBase extends Phaser.GameObjects.Container { const hasProps = getBiomeHasProps(biome); const biomeKey = getBiomeKey(biome); + const baseKey = `${biomeKey}_${this.player ? 'a' : 'b'}`; + + this.base.setTexture(baseKey); + + if (this.base.texture.frameTotal > 1) { + const baseFrameNames = this.scene.anims.generateFrameNames(baseKey, { zeroPad: 4, suffix: ".png", start: 1, end: this.base.texture.frameTotal - 1 }); + this.scene.anims.create({ + key: baseKey, + frames: baseFrameNames, + frameRate: 12, + repeat: -1 + }); + this.base.play(baseKey); + } - this.base.setTexture(`${biomeKey}_${this.player ? 'a' : 'b'}`); this.add(this.base); if (!this.player) { @@ -521,7 +533,20 @@ export class ArenaBase extends Phaser.GameObjects.Container { ? hasProps ? Utils.randSeedInt(8) : 0 : propValue; this.props.forEach((prop, p) => { - prop.setTexture(`${biomeKey}_b${hasProps ? `_${p + 1}` : ''}`); + const propKey = `${biomeKey}_b${hasProps ? `_${p + 1}` : ''}`; + prop.setTexture(propKey); + + if (hasProps && prop.texture.frameTotal > 1) { + const propFrameNames = this.scene.anims.generateFrameNames(propKey, { zeroPad: 4, suffix: ".png", start: 1, end: prop.texture.frameTotal - 1 }); + this.scene.anims.create({ + key: propKey, + frames: propFrameNames, + frameRate: 12, + repeat: -1 + }); + prop.play(propKey); + } + prop.setVisible(hasProps && !!(this.propValue & (1 << p))); this.add(prop); }); diff --git a/src/battle-scene.ts b/src/battle-scene.ts index bf885a02070..87657ff302a 100644 --- a/src/battle-scene.ts +++ b/src/battle-scene.ts @@ -253,12 +253,27 @@ export default class BattleScene extends Phaser.Scene { // Load arena images Utils.getEnumValues(Biome).map(bt => { const btKey = Biome[bt].toLowerCase(); + const isBaseAnimated = btKey === 'end'; + const baseAKey = `${btKey}_a`; + const baseBKey = `${btKey}_b`; this.loadImage(`${btKey}_bg`, 'arenas'); - this.loadImage(`${btKey}_a`, 'arenas'); - this.loadImage(`${btKey}_b`, 'arenas'); + if (!isBaseAnimated) + this.loadImage(baseAKey, 'arenas'); + else + this.loadAtlas(baseAKey, 'arenas'); + if (!isBaseAnimated) + this.loadImage(baseBKey, 'arenas'); + else + this.loadAtlas(baseBKey, 'arenas'); if (getBiomeHasProps(bt)) { - for (let p = 1; p <= 3; p++) - this.loadImage(`${btKey}_b_${p}`, 'arenas') + for (let p = 1; p <= 3; p++) { + const isPropAnimated = p === 3 && btKey === 'end'; + const propKey = `${btKey}_b_${p}`; + if (!isPropAnimated) + this.loadImage(propKey, 'arenas'); + else + this.loadAtlas(propKey, 'arenas'); + } } }); @@ -286,6 +301,10 @@ export default class BattleScene extends Phaser.Scene { this.loadAtlas('types', ''); this.loadAtlas('statuses', ''); this.loadAtlas('categories', ''); + this.loadAtlas('egg', ''); + this.loadAtlas('egg_crack', ''); + this.loadAtlas('egg_shard', ''); + this.loadAtlas('egg_lightrays', ''); for (let i = 0; i < 10; i++) this.loadAtlas(`pokemon_icons_${i}`, 'ui'); @@ -324,6 +343,9 @@ export default class BattleScene extends Phaser.Scene { this.loadSe('pb_tray_ball'); this.loadSe('pb_tray_empty'); + this.loadSe('egg_crack'); + this.loadSe('egg_hatch'); + this.loadSe('PRSFX- Transform', 'battle_anims'); this.loadBgm('menu'); @@ -692,6 +714,9 @@ export default class BattleScene extends Phaser.Scene { //this.pushPhase(new TrainerMessageTestPhase(this)); + //for (let t = 0; t < 4; t++) + //this.pushPhase(new EggHatchPhase(this, new Egg(2423432 + EGG_SEED * t, GachaType.LEGENDARY, new Date().getTime()))); + if (!waveIndex) { const isNewBiome = !lastBattle || !(lastBattle.waveIndex % 10); const resetArenaState = isNewBiome || this.currentBattle.battleType === BattleType.TRAINER; diff --git a/src/data/ability.ts b/src/data/ability.ts index 121981dd420..fcb0cbcca55 100644 --- a/src/data/ability.ts +++ b/src/data/ability.ts @@ -1561,7 +1561,7 @@ export function initAbilities() { new Ability(Abilities.SAND_STREAM, "Sand Stream", "The Pokémon summons a sandstorm when it enters a battle.", 3) .attr(PostSummonWeatherChangeAbAttr, WeatherType.SANDSTORM), new Ability(Abilities.PRESSURE, "Pressure", "By putting pressure on the opposing Pokémon, it raises their PP usage.", 3) - .attr(PostSummonMessageAbAttr, (pokemon: Pokemon) => getPokemonMessage(pokemon, 'is exerting its Pressure!')), + .attr(PostSummonMessageAbAttr, (pokemon: Pokemon) => getPokemonMessage(pokemon, ' is exerting its Pressure!')), new Ability(Abilities.THICK_FAT, "Thick Fat", "The Pokémon is protected by a layer of thick fat, which halves the damage taken from Fire- and Ice-type moves.", 3) .attr(ReceivedTypeDamageMultiplierAbAttr, Type.FIRE, 0.5) .attr(ReceivedTypeDamageMultiplierAbAttr, Type.ICE, 0.5), diff --git a/src/data/egg.ts b/src/data/egg.ts new file mode 100644 index 00000000000..53fae38407a --- /dev/null +++ b/src/data/egg.ts @@ -0,0 +1,23 @@ +import { ModifierTier } from "../modifier/modifier-type"; + +export const EGG_SEED = 1073741824; + +export enum GachaType { + LEGENDARY, + TYPE, + SHINY +} + +export class Egg { + public id: integer; + public tier: ModifierTier; + public gachaType: GachaType; + public timestamp: integer; + + constructor(id: integer, gachaType: GachaType, timestamp: integer) { + this.id = id; + this.tier = Math.floor(id / EGG_SEED); + this.gachaType = gachaType; + this.timestamp = timestamp; + } +} \ No newline at end of file diff --git a/src/data/pokemon-species.ts b/src/data/pokemon-species.ts index 2443aeb15bd..658b91c1078 100644 --- a/src/data/pokemon-species.ts +++ b/src/data/pokemon-species.ts @@ -2534,7 +2534,7 @@ export const speciesStarters = { [Species.WIMPOD]: 3, [Species.SANDYGAST]: 3, [Species.PYUKUMUKU]: 3, - [Species.TYPE_NULL]: 5, + [Species.TYPE_NULL]: 6, [Species.MINIOR]: 5, [Species.KOMALA]: 5, [Species.TURTONATOR]: 5, diff --git a/src/egg-hatch-phase.ts b/src/egg-hatch-phase.ts new file mode 100644 index 00000000000..486f79338e0 --- /dev/null +++ b/src/egg-hatch-phase.ts @@ -0,0 +1,285 @@ +import SoundFade from "phaser3-rex-plugins/plugins/soundfade"; +import { BattlePhase } from "./battle-phase"; +import BattleScene, { AnySound } from "./battle-scene"; +import * as Utils from "./utils"; +import { Mode } from "./ui/ui"; +import { Egg } from "./data/egg"; +import EggHatchSceneHandler from "./ui/egg-hatch-scene-handler"; +import { ModifierTier } from "./modifier/modifier-type"; +import { Species } from "./data/species"; +import Pokemon, { PlayerPokemon } from "./pokemon"; +import { getPokemonSpecies, speciesStarters } from "./data/pokemon-species"; + +export class EggHatchPhase extends BattlePhase { + private egg: Egg; + + private eggHatchContainer: Phaser.GameObjects.Container; + private eggHatchBg: Phaser.GameObjects.Image; + private eggHatchOverlay: Phaser.GameObjects.Rectangle; + private eggContainer: Phaser.GameObjects.Container; + private eggSprite: Phaser.GameObjects.Sprite; + private eggCrackSprite: Phaser.GameObjects.Sprite; + private eggLightraysOverlay: Phaser.GameObjects.Sprite; + private pokemonSprite: Phaser.GameObjects.Sprite; + + constructor(scene: BattleScene, egg: Egg) { + super(scene); + + this.egg = egg; + } + + start() { + super.start(); + + this.scene.ui.setModeForceTransition(Mode.EGG_HATCH_SCENE).then(() => { + + if (!this.egg) + return this.end(); + + this.scene.fadeOutBgm(null, false); + + const eggHatchHandler = this.scene.ui.getHandler() as EggHatchSceneHandler; + + this.eggHatchContainer = eggHatchHandler.eggHatchContainer; + + this.eggHatchBg = this.scene.add.image(0, 0, 'default_bg'); + this.eggHatchBg.setOrigin(0, 0); + this.eggHatchContainer.add(this.eggHatchBg); + + this.eggContainer = this.scene.add.container(this.eggHatchBg.displayWidth / 2, this.eggHatchBg.displayHeight / 2); + + this.eggSprite = this.scene.add.sprite(0, 0, 'egg', `egg_${this.egg.tier}`); + this.eggCrackSprite = this.scene.add.sprite(0, 0, 'egg_crack', '0'); + this.eggCrackSprite.setVisible(false); + + this.eggLightraysOverlay = this.scene.add.sprite((-this.eggHatchBg.displayWidth / 2) + 4, -this.eggHatchBg.displayHeight / 2, 'egg_lightrays', '3'); + this.eggLightraysOverlay.setOrigin(0, 0); + this.eggLightraysOverlay.setVisible(false); + + this.eggContainer.add(this.eggSprite); + this.eggContainer.add(this.eggCrackSprite); + this.eggContainer.add(this.eggLightraysOverlay); + this.eggHatchContainer.add(this.eggContainer); + + const getPokemonSprite = () => this.scene.add.sprite(this.eggHatchBg.displayWidth / 2, this.eggHatchBg.displayHeight / 2, `pkmn__sub`); + + this.eggHatchContainer.add((this.pokemonSprite = getPokemonSprite())); + + this.eggHatchOverlay = this.scene.add.rectangle(0, -this.scene.game.canvas.height / 6, this.scene.game.canvas.width / 6, this.scene.game.canvas.height / 6, 0xFFFFFF); + this.eggHatchOverlay.setOrigin(0, 0); + this.eggHatchOverlay.setAlpha(0); + this.scene.fieldUI.add(this.eggHatchOverlay); + + const pokemon = this.generatePokemon(); + const preName = pokemon.name; + + console.log(preName, pokemon); + + this.pokemonSprite.setVisible(false); + + let evolutionBgm: AnySound; + + pokemon.loadAssets().then(() => { + this.scene.time.delayedCall(1000, () => evolutionBgm = this.scene.playSoundWithoutBgm('evolution')); + + this.scene.time.delayedCall(2000, () => { + this.eggCrackSprite.setVisible(true); + this.doSpray(1, this.eggSprite.displayHeight / -2); + this.doEggShake(2).then(() => { + this.scene.time.delayedCall(1000, () => { + this.doSpray(2, this.eggSprite.displayHeight / -4); + this.eggCrackSprite.setFrame('1'); + this.scene.time.delayedCall(125, () => this.eggCrackSprite.setFrame('2')); + this.doEggShake(4).then(() => { + this.scene.time.delayedCall(1000, () => { + this.scene.playSound('egg_crack'); + this.doSpray(4); + this.eggCrackSprite.setFrame('3'); + this.scene.time.delayedCall(125, () => this.eggCrackSprite.setFrame('4')); + this.doEggShake(8, 2).then(() => { + SoundFade.fadeOut(this.scene, evolutionBgm, 100); + for (let e = 0; e < 5; e++) + this.scene.time.delayedCall(375 * e, () => this.scene.playSound('egg_hatch', { volume: 1 - (e * 0.2) })); + this.eggLightraysOverlay.setVisible(true); + this.eggLightraysOverlay.play('egg_lightrays'); + this.scene.tweens.add({ + duration: 125, + targets: this.eggHatchOverlay, + alpha: 1, + ease: 'Cubic.easeIn' + }); + this.scene.time.delayedCall(1500, () => { + this.eggContainer.setVisible(false); + this.pokemonSprite.play(pokemon.getSpriteKey(true)); + this.pokemonSprite.setVisible(true); + this.scene.time.delayedCall(1000, () => pokemon.cry()); + this.scene.tweens.add({ + duration: 3000, + targets: this.eggHatchOverlay, + alpha: 0, + ease: 'Cubic.easeOut', + onComplete: () => { + this.scene.time.delayedCall(1000, () => this.end()); + } + }); + }); + }); + }); + }); + }) + }); + }); + }); + }); + } + + doEggShake(intensity: number, repeatCount?: integer, count?: integer): Promise { + return new Promise(resolve => { + if (repeatCount === undefined) + repeatCount = 0; + if (count === undefined) + count = 0; + this.scene.playSound('pb_move'); + this.scene.tweens.add({ + targets: this.eggContainer, + x: `-=${intensity / (count ? 1 : 2)}`, + ease: 'Sine.easeInOut', + duration: 125, + onComplete: () => { + this.scene.tweens.add({ + targets: this.eggContainer, + x: `+=${intensity}`, + ease: 'Sine.easeInOut', + duration: 250, + onComplete: () => { + count++; + if (count < repeatCount) + return this.doEggShake(intensity, repeatCount, count).then(() => resolve()); + this.scene.tweens.add({ + targets: this.eggContainer, + x: `-=${intensity / 2}`, + ease: 'Sine.easeInOut', + duration: 125, + onComplete: () => resolve() + }); + } + }) + } + }); + }); + } + + sin(index: integer, amplitude: integer): number { + return amplitude * Math.sin(index * (Math.PI / 128)); + } + + doSpray(intensity: integer, offsetY?: number) { + this.scene.tweens.addCounter({ + repeat: intensity, + duration: Utils.getFrameMs(1), + onRepeat: () => { + this.doSprayParticle(Utils.randInt(8), offsetY || 0); + } + }); + } + + doSprayParticle(trigIndex: integer, offsetY: number) { + const initialX = this.eggHatchBg.displayWidth / 2; + const initialY = this.eggHatchBg.displayHeight / 2 + offsetY; + const particle = this.scene.add.image(initialX, initialY, 'egg_shard', `${this.egg.tier}_${Math.floor(trigIndex / 2)}`); + this.eggHatchContainer.add(particle); + + let f = 0; + let yOffset = 0; + let speed = 3 - Utils.randInt(8); + let amp = 24 + Utils.randInt(32); + + const particleTimer = this.scene.tweens.addCounter({ + repeat: -1, + duration: Utils.getFrameMs(1), + onRepeat: () => { + updateParticle(); + } + }); + + const updateParticle = () => { + yOffset++; + if (trigIndex < 160) { + particle.setPosition(initialX + (speed * f) / 3, initialY + yOffset); + particle.y += -this.sin(trigIndex, amp); + if (f > 108) + particle.setScale((1 - (f - 108) / 20)); + trigIndex += 2; + f++; + } else { + particle.destroy(); + particleTimer.remove(); + } + }; + + updateParticle(); + } + + generatePokemon(): Pokemon { + let minStarterValue: integer; + let maxStarterValue: integer; + + switch (this.egg.tier) { + case ModifierTier.GREAT: + minStarterValue = 3; + maxStarterValue = 5; + break; + case ModifierTier.ULTRA: + minStarterValue = 6; + maxStarterValue = 7; + break; + case ModifierTier.MASTER: + minStarterValue = 8; + maxStarterValue = 9; + break; + default: + minStarterValue = 1; + maxStarterValue = 2; + break; + } + + const speciesPool = Object.keys(speciesStarters) + .filter(s => speciesStarters[s] >= minStarterValue && speciesStarters[s] <= maxStarterValue) + .map(s => parseInt(s) as Species) + .filter(s => getPokemonSpecies(s).isObtainable()); + + let totalWeight = 0; + const speciesWeights = []; + for (let speciesId of speciesPool) { + const weight = Math.floor((((maxStarterValue - speciesStarters[speciesId]) / ((maxStarterValue - minStarterValue) + 1)) * 1.5 + 1) * 100); + speciesWeights.push(totalWeight + weight); + totalWeight += weight; + } + + let species: Species; + + this.scene.executeWithSeedOffset(() => { + const rand = Utils.randSeedInt(totalWeight); + for (let s = 0; s < speciesWeights.length; s++) { + if (rand < speciesWeights[s]) { + species = speciesPool[s]; + break; + } + } + }, this.egg.id); + + console.log(species, totalWeight); + + const pokemon = new PlayerPokemon(this.scene, getPokemonSpecies(species), 5, null, null); + + return pokemon; + } +} + +export class EndEvolutionPhase extends BattlePhase { + start() { + super.start(); + + this.scene.ui.setModeForceTransition(Mode.MESSAGE).then(() => this.end()); + } +} \ No newline at end of file diff --git a/src/pokemon.ts b/src/pokemon.ts index f2ca0011670..ca9f0785d4f 100644 --- a/src/pokemon.ts +++ b/src/pokemon.ts @@ -105,7 +105,9 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container { : new EnemyBattleInfo(scene); this.pokeball = dataSource?.pokeball || PokeballType.POKEBALL; this.level = level; - this.abilityIndex = abilityIndex || (species.abilityHidden && hasHiddenAbility ? species.ability2 ? 2 : 1 : species.ability2 ? randAbilityIndex : 0); + this.abilityIndex = abilityIndex !== undefined + ? abilityIndex + : (species.abilityHidden && hasHiddenAbility ? species.ability2 ? 2 : 1 : species.ability2 ? randAbilityIndex : 0); this.formIndex = formIndex || 0; if (gender !== undefined) this.gender = gender; diff --git a/src/system/egg-data.ts b/src/system/egg-data.ts new file mode 100644 index 00000000000..3c6f20363fb --- /dev/null +++ b/src/system/egg-data.ts @@ -0,0 +1,18 @@ +import { Egg, GachaType } from "../data/egg"; + +export default class EggData { + public id: integer; + public gachaType: GachaType; + public timestamp: integer; + + constructor(source: Egg | any) { + const sourceEgg = source instanceof Egg ? source as Egg : null; + this.id = sourceEgg ? sourceEgg.id : source.id; + this.gachaType = sourceEgg ? sourceEgg.gachaType : source.gachaType; + this.timestamp = sourceEgg ? sourceEgg.timestamp : source.timestamp; + } + + toEgg(): Egg { + return new Egg(this.id, this.gachaType, this.timestamp); + } +} \ No newline at end of file diff --git a/src/system/game-data.ts b/src/system/game-data.ts index 9f463d005da..43b7719211e 100644 --- a/src/system/game-data.ts +++ b/src/system/game-data.ts @@ -14,6 +14,8 @@ import TrainerData from "./trainer-data"; import { trainerConfigs } from "../data/trainer-type"; import { Setting, setSetting, settingDefaults } from "./settings"; import { achvs } from "./achv"; +import EggData from "./egg-data"; +import { Egg } from "../data/egg"; interface SystemSaveData { trainerId: integer; @@ -21,6 +23,7 @@ interface SystemSaveData { dexData: DexData; unlocks: Unlocks; achvUnlocks: AchvUnlocks; + eggs: EggData[]; gameVersion: string; timestamp: integer; } @@ -93,6 +96,8 @@ export class GameData { public achvUnlocks: AchvUnlocks; + public eggs: Egg[]; + constructor(scene: BattleScene) { this.scene = scene; this.loadSettings(); @@ -104,6 +109,7 @@ export class GameData { [Unlockables.SPLICED_ENDLESS_MODE]: false }; this.achvUnlocks = {}; + this.eggs = []; this.initDexData(); this.loadSystem(); } @@ -118,6 +124,7 @@ export class GameData { dexData: this.dexData, unlocks: this.unlocks, achvUnlocks: this.achvUnlocks, + eggs: this.eggs.map(e => new EggData(e)), gameVersion: this.scene.game.config.gameVersion, timestamp: new Date().getTime() }; @@ -158,9 +165,13 @@ export class GameData { for (let a of Object.keys(data.achvUnlocks)) { if (achvs.hasOwnProperty(a)) this.achvUnlocks[a] = data.achvUnlocks[a]; - } + } } + this.eggs = data.eggs + ? data.eggs.map(e => e.toEgg()) + : []; + if (data.dexData[1].hasOwnProperty(0)) this.migrateLegacyDexData(this.dexData, data.dexData); else diff --git a/src/ui/egg-hatch-scene-handler.ts b/src/ui/egg-hatch-scene-handler.ts new file mode 100644 index 00000000000..7105e13ea5e --- /dev/null +++ b/src/ui/egg-hatch-scene-handler.ts @@ -0,0 +1,41 @@ +import BattleScene, { Button } from "../battle-scene"; +import { Mode } from "./ui"; +import UiHandler from "./uiHandler"; + +export default class EggHatchSceneHandler extends UiHandler { + public eggHatchContainer: Phaser.GameObjects.Container; + + constructor(scene: BattleScene) { + super(scene, Mode.EGG_HATCH_SCENE); + } + + setup() { + this.eggHatchContainer = this.scene.add.container(0, -this.scene.game.canvas.height / 6); + this.scene.fieldUI.add(this.eggHatchContainer); + + const eggLightraysAnimFrames = this.scene.anims.generateFrameNames('egg_lightrays', { start: 0, end: 3 }); + this.scene.anims.create({ + key: 'egg_lightrays', + frames: eggLightraysAnimFrames, + frameRate: 32 + }); + } + + show(_args: any[]): void { + super.show(_args); + + this.scene.fieldUI.bringToTop(this.eggHatchContainer); + } + + processInput(button: Button): boolean { + return this.scene.ui.getMessageHandler().processInput(button); + } + + setCursor(_cursor: integer): boolean { + return false; + } + + clear() { + this.eggHatchContainer.removeAll(true); + } + } \ No newline at end of file diff --git a/src/ui/evolution-scene-handler.ts b/src/ui/evolution-scene-handler.ts index 4e6c8cb3c09..f1f976e4932 100644 --- a/src/ui/evolution-scene-handler.ts +++ b/src/ui/evolution-scene-handler.ts @@ -7,8 +7,6 @@ export default class EvolutionSceneHandler extends UiHandler { public canCancel: boolean; public cancelled: boolean; - private cleanupFunc: Function; - constructor(scene: BattleScene) { super(scene, Mode.EVOLUTION_SCENE); } diff --git a/src/ui/ui.ts b/src/ui/ui.ts index 5480972c154..24b816d0360 100644 --- a/src/ui/ui.ts +++ b/src/ui/ui.ts @@ -20,6 +20,7 @@ import AchvBar from './achv-bar'; import MenuUiHandler from './menu-ui-handler'; import AchvsUiHandler from './achvs-ui-handler'; import OptionSelectUiHandler from './option-select-ui-handler'; +import EggHatchSceneHandler from './egg-hatch-scene-handler'; export enum Mode { MESSAGE, @@ -33,6 +34,7 @@ export enum Mode { BIOME_SELECT, STARTER_SELECT, EVOLUTION_SCENE, + EGG_HATCH_SCENE, CONFIRM, OPTION_SELECT, GAME_MODE_SELECT, @@ -45,7 +47,8 @@ const transitionModes = [ Mode.PARTY, Mode.SUMMARY, Mode.STARTER_SELECT, - Mode.EVOLUTION_SCENE + Mode.EVOLUTION_SCENE, + Mode.EGG_HATCH_SCENE ]; const noTransitionModes = [ @@ -87,6 +90,7 @@ export default class UI extends Phaser.GameObjects.Container { new BiomeSelectUiHandler(scene), new StarterSelectUiHandler(scene), new EvolutionSceneHandler(scene), + new EggHatchSceneHandler(scene), new ConfirmUiHandler(scene), new OptionSelectUiHandler(scene), new GameModeSelectUiHandler(scene),