From ca9679ba1dfe55c1bcb389139e18dce05242e3a6 Mon Sep 17 00:00:00 2001 From: Erick Date: Tue, 3 May 2022 17:06:00 -0300 Subject: [PATCH] feat: adding bumper sfx (#315) * feat: adding bumper sfx * feat: adding missing bumpers * Update packages/pinball_audio/lib/src/pinball_audio.dart Co-authored-by: Allison Ryan <77211884+allisonryan0002@users.noreply.github.com> Co-authored-by: Allison Ryan <77211884+allisonryan0002@users.noreply.github.com> --- .../android_acres/android_acres.dart | 6 +- .../flutter_forest/flutter_forest.dart | 8 +-- lib/game/components/scoring_behavior.dart | 21 +++++- lib/game/components/sparky_scorch.dart | 6 +- .../pinball_audio/assets/sfx/bumper_a.mp3 | Bin 0 -> 37660 bytes .../pinball_audio/assets/sfx/bumper_b.mp3 | Bin 0 -> 36406 bytes packages/pinball_audio/assets/sfx/plim.mp3 | Bin 18225 -> 0 bytes .../pinball_audio/lib/gen/assets.gen.dart | 3 +- .../pinball_audio/lib/src/pinball_audio.dart | 28 ++++++-- .../test/src/pinball_audio_test.dart | 68 +++++++++++++++--- .../components/scoring_behavior_test.dart | 67 +++++++++++++---- 11 files changed, 163 insertions(+), 44 deletions(-) create mode 100644 packages/pinball_audio/assets/sfx/bumper_a.mp3 create mode 100644 packages/pinball_audio/assets/sfx/bumper_b.mp3 delete mode 100644 packages/pinball_audio/assets/sfx/plim.mp3 diff --git a/lib/game/components/android_acres/android_acres.dart b/lib/game/components/android_acres/android_acres.dart index 3d1a8154..d29f38d7 100644 --- a/lib/game/components/android_acres/android_acres.dart +++ b/lib/game/components/android_acres/android_acres.dart @@ -25,17 +25,17 @@ class AndroidAcres extends Component { )..initialPosition = Vector2(-26, -28.25), AndroidBumper.a( children: [ - ScoringBehavior(points: Points.twentyThousand), + BumperScoringBehavior(points: Points.twentyThousand), ], )..initialPosition = Vector2(-25, 1.3), AndroidBumper.b( children: [ - ScoringBehavior(points: Points.twentyThousand), + BumperScoringBehavior(points: Points.twentyThousand), ], )..initialPosition = Vector2(-32.8, -9.2), AndroidBumper.cow( children: [ - ScoringBehavior(points: Points.twentyThousand), + BumperScoringBehavior(points: Points.twentyThousand), ], )..initialPosition = Vector2(-20.5, -13.8), AndroidSpaceshipBonusBehavior(), diff --git a/lib/game/components/flutter_forest/flutter_forest.dart b/lib/game/components/flutter_forest/flutter_forest.dart index 1fb8907b..0f24a3b6 100644 --- a/lib/game/components/flutter_forest/flutter_forest.dart +++ b/lib/game/components/flutter_forest/flutter_forest.dart @@ -18,22 +18,22 @@ class FlutterForest extends Component with ZIndex { children: [ Signpost( children: [ - ScoringBehavior(points: Points.fiveThousand), + BumperScoringBehavior(points: Points.fiveThousand), ], )..initialPosition = Vector2(8.35, -58.3), DashNestBumper.main( children: [ - ScoringBehavior(points: Points.twoHundredThousand), + BumperScoringBehavior(points: Points.twoHundredThousand), ], )..initialPosition = Vector2(18.55, -59.35), DashNestBumper.a( children: [ - ScoringBehavior(points: Points.twentyThousand), + BumperScoringBehavior(points: Points.twentyThousand), ], )..initialPosition = Vector2(8.95, -51.95), DashNestBumper.b( children: [ - ScoringBehavior(points: Points.twentyThousand), + BumperScoringBehavior(points: Points.twentyThousand), ], )..initialPosition = Vector2(22.3, -46.75), DashAnimatronic()..position = Vector2(20, -66), diff --git a/lib/game/components/scoring_behavior.dart b/lib/game/components/scoring_behavior.dart index e8f51e90..f741e213 100644 --- a/lib/game/components/scoring_behavior.dart +++ b/lib/game/components/scoring_behavior.dart @@ -23,7 +23,6 @@ class ScoringBehavior extends ContactBehavior with HasGameRef { if (other is! Ball) return; gameRef.read().add(Scored(points: _points.value)); - gameRef.audio.score(); gameRef.firstChild()!.add( ScoreComponent( points: _points, @@ -32,3 +31,23 @@ class ScoringBehavior extends ContactBehavior with HasGameRef { ); } } + +/// {@template bumper_scoring_behavior} +/// A specific [ScoringBehavior] used for Bumpers. +/// In addition to its parent logic, also plays the +/// SFX for bumpers +/// {@endtemplate} +class BumperScoringBehavior extends ScoringBehavior { + /// {@macro bumper_scoring_behavior} + BumperScoringBehavior({ + required Points points, + }) : super(points: points); + + @override + void beginContact(Object other, Contact contact) { + super.beginContact(other, contact); + if (other is! Ball) return; + + gameRef.audio.bumper(); + } +} diff --git a/lib/game/components/sparky_scorch.dart b/lib/game/components/sparky_scorch.dart index 434e9479..f98f71d7 100644 --- a/lib/game/components/sparky_scorch.dart +++ b/lib/game/components/sparky_scorch.dart @@ -16,17 +16,17 @@ class SparkyScorch extends Component { children: [ SparkyBumper.a( children: [ - ScoringBehavior(points: Points.twentyThousand), + BumperScoringBehavior(points: Points.twentyThousand), ], )..initialPosition = Vector2(-22.9, -41.65), SparkyBumper.b( children: [ - ScoringBehavior(points: Points.twentyThousand), + BumperScoringBehavior(points: Points.twentyThousand), ], )..initialPosition = Vector2(-21.25, -57.9), SparkyBumper.c( children: [ - ScoringBehavior(points: Points.twentyThousand), + BumperScoringBehavior(points: Points.twentyThousand), ], )..initialPosition = Vector2(-3.3, -52.55), SparkyComputerSensor()..initialPosition = Vector2(-13, -49.9), diff --git a/packages/pinball_audio/assets/sfx/bumper_a.mp3 b/packages/pinball_audio/assets/sfx/bumper_a.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..76c0b0227c4c792c998e160c7509639e23daae8c GIT binary patch literal 37660 zcmeFYRdd{2w65E2W`;JiW47DOF*7s9%*^bVV`iq98DeIJn3-Z`hL{sm?|f_3t~wXz z51gu_3r$J0N*bE==$%8ahGZo;U;zIuR2u5)lK)zC003IS#M6?CmxYI$1*(m_=H=)2^=nvUWNd6wT3S|CUS3gISyfeCQ&U@8S6|=o@YvMU z{QUCrudS{9{p0iV>+AdH=hs)rf06u)+3a7;V2=NG{_jE!gZaOk$v4NFn3ezc@c-Zb ze`N&z5oZnnz!G{6PJ@l1L`MH~7e)d=*HmVIo`QhCCG7h!Q~&^ke|IzfEirk34IZ#B zXl3d2w$*ZMR^W+^=H&OhfeLSYNfI`c0~!(+7mwYGwS2y5Mny$sQ2c3p$!P|fP{>@+ z6(Z*a06?}d02zLUFV7nUdX~p0b0mk4YoUy0I}NdxPwagb_7<+sy`+$%n{Rz)pjk7} zD0^Eru~qN;jl%0S=x5KzC^!M)x6^a;^{pYd=jOTR`4#ls=eJ|e^V#`dd{AL>2wJ`{ z0I@CX`oS^9?zp+Q2MR(d$b)^@!^KT?U!^|yPi0Id&{$lPYXltg&Rhz8EWwcICp7E)ur(s__Usaj08|by9$zQq3eEA+aS&wyNmtq5qQ%-%@^CvA z5J6|$ik1-sa`E*ttE0NBqFqTaB<2{((EtL0Jo^$ha{#~LH4z{qvk({DN4YcKJ}L)tyeIELehq|zko?dLK+6N;^;Y5wI-1&Dwb(Q7SUy|;yLKOe=a5``Ge^)%63P>-(umXpR6e$0T z!1Ze%IrYiI+Tp|!wsrGkT@!nK2}BzmwW|i*#`5s%1aCc zd2KYu2Ef*s{W>w(1=vS*IULpi@MIm#P^kT*Dr+3y9#FgKbeBdA`*Tzokq&`tjTRM! z^U6YL7~A}jjT2w#DTMM+KI3H`H20}=^TyJMdhm7g&X-M`X+5TskhVy6O*J1AUpDDw zuAIUCELCraqMQk&ijIVc@#fmhsB1@WI|3~@%*C^E_!l3A1gQJ8% z&mH&M0DL0R)GiFcj+d{c8mV6s5nUESOo(|Ih~Kn zJ7`mR zNEQH)Nn#EvK{)Nfg3+y}D6Hl;1Y;e@NJM8c7~=Vwz>`O%;E7XGv4g@HO-2ML88lB- z-~L062nx2>V08#x{m|nG1>{>#2LrW8e{PZB#2H22d|L&D;@t|KQBm!aI^r)udI&I>Llj zyAqI_?6n`R#wjF$p8G|^yNro8BCF>_rtWsLrLZ&Wt3$4*q9 z!1lwuW<_IHIN5u7B5|ssML?{Nc`3pZ_4X2qV*6{JrPvV?YxF4fm1aW5Tzlk_*o|d2 zecFDZ!IGK4rh#TpI`S9I==Uo(&9>H|Q37o__CVfcoBMY+4`?)l=WjC_zJp9`Wc%EE zVugj8n!GMomP#q~*s4>WRI}w*XxDa-3RDC_)F0WDTt_M@E*%F&7|6Y3K(E~7L;!5p zEj58XOVKpPkaur3c`$VzXkk_oVXxXeR54K@Z)q)K)mUlM9`8XF z)e9s4AqRqjO*2}%z~D*riXo~uiB!OS&oNRE!X6lBs%?J2Yu_kYil4^HTnpN&n6$DJ ze&K86_04zH?Vxs|H*a*}Gt}X}y0!{D7QFVTe`dtVoKnEHM9f%V%_*@~p$l4PA6anz z?mCDpSHh$76M>I2kJY4+B~(>Ve3(;OwmRFMf-aIYrpGIAbRio5x!7fpU7A-QtzNS1Bnz z7zxbh+mWvZtB+PKv*v%NvXrqoRN+_gRhi$zfY{WsuuYtlOFBQ8we|y3^5PGKIila?$T_>4F^0IAJ;^&X1ddBU+N@+D z?)w^kQoH$2F1r~Wn#8~6nXPPF!GEgd80P_;6^bx=Js9DH)~SLwUS4l|T8y1x2qk<*9$~()UbjT}a7lF#2vdZhDwq zMi+esOQc}B{u4!(8fw4wAv;TV-LnwRH{K<-pugcz>vJXg9X^T|HC?>~!MZ#I3 zY+{t-bQidrp&TCBm(_!t&3m=}63lkx&&@OlQesS^zi+KT=V zMgOJy7%U+#=`1uTO>zxd^ec~V(%j}kot-`3iyg{F`&&3_o{_csP7CbH?I0dnk6xq$ zVG|5~rgx>b;p8Cz#48j86gVZCyN}XFPN*mP zY(y>|6~lkX5ddKIjkV-aSVU}*84ba(`Py-Xnl(Mx1G6CXL0Njfz=;9Mgm7%* zz@2+7>`Gnan3-(j_K}&`i7-y=`6YjD+a*)A{*K4ezdueBkbSUbHkPoodqdU zy|Zs$_4|o>?jgTMK_;OXrqN64Si**23)lQ9wWO(W`C{Ij4L)-au&YP_XDo~ht{|_N zdgtla`!PRkARC>iZYkx0?%r<{IHzB)YjX#Wph^rflJt33#l7CZ!?yjNs95W9w&t%N zy^Jx7`%XTNd})wBu!fC;RV97fs^Wj2PrT?xC&ZT1z8q(*R5+g=EjF?Ay{1Y;LMLy) zZZR5JD*G9!0D%9VR6rU{8OZb$o*L;fsbDum1yfRVaWAqZ&3#2nKvDA(^Rf4L&uuQ; z)M|xce~ZB=B*jKn^j#3*0@mBDCRx$k_dqvBlTk;9rmZHnPoVsP1$wP^JC`O70fAK# zzIFC}9ZcMbaYod`t>yuQh>V%S0?MJ*dc}eGtEhIqe8Cllmmk|w_f+OHn&f5%YKyLo z*0Shqzc2*-YEarLgCT=4={l)E;*dD0;9EuK>PmW9ZF&D<)UH`-07W7IDC-?X0A?sg zO|a8ow!;+7RhaJSj}uU{n##z_S*04JgCz2WH#ts^b?H333=uLXPVga2_i7GaC)w88wfWAJ zA>@Damo9X{VFrAO)Bq%YTypcDuprQHa;l?{Qb6Q>BSs|ZA2y=)xT$Hd;bGa=)lPQ~ zUMM2d-{PU9-Udk4To3J42r(p{7PS4 zjD2214Pub_qAw1>^OJh>gTUR_Pxr_76Aw!V_*w7Tu1ojPWhN-Ua_`dAFFlrI z;cK5Z6c!& z(wB15^q!MtyiUbpIhc#O;e@1k`h^QPR-RkxL49DoD=6M|CLI-JycLyHipIr-{gcAV z(nn22><>O#G{Q>Hm4#x8j4yC%4E3zZBy(Px(BXRfU-Ex$Byhu*rmFd@6DjIi5686q zv2#4QgvBfoqP<`Q|7k6>_d>x6!xqe%Cn4VcQBcG(CRK&^jZ&Jjl-K#kwdFn^M2-WA zq5KEI-1uDinRiqrLs7M+X&Fm}yWZC3TZHRUCy&_5s^{{OW|}k=M~$6_9nbYdn|v}5 z01%V`$YeQdWDQ{H&beW;Vk|~!S`y;G@sd!a47kb{sZ_e(%?6raN_8)6O83HBqYGU3 z6kUf1hJ+~dxuZ1H^HVN5I^9?gtGnIBfj2t#ZQIm8V(MOs4r7G4Lk@toP1wf6d>`(+2=qU7gH;6a z($NcgXW~f60F2?r-O-W$IR(K5N2AJI4tjAToGXOkm!W9_`!j@T8J4~XY2q&JwN{9~ z(Wu(1ZoU6Qjv|Dn&2T~8Tf)@^o-j&?&Rg5WOk}#-2RL18>k&#(QH8ax=dp1yo10$4 z1;#Hc%POh`Cae>Q_eaTmNLy>&s8AJ@{&!zx$)Jp@KdB= zLLuk{7kDoGC!b6*MP|M;@aY@HLA0(IX|kzs#QbXQ5Q;_C6t(Pt_#ZVA3^U1ZGQ*S4 ze;Dup0NnS244}pWWpqK47Mq-M+En=+bCelPsN#m2qMfCrV<)oCXIqRkACA-5GqY`n zX%Yu<0?jnz`235&1QaOZ{-(tK->y_0Vx`KM6FUgjoH%_qg``YX_i>u#?`pK4@O!b` zZt9-5Vy^7`ATJ02hEZ~2AsowsU2-s{ZZsZ=(q#FWAR6;_u2vTtu5kd0r8w5yM zPa+FuI}iB?C&o^v(XBV|smOaWZ`8m5*@A2@w>Xl*I&CW4@EZ|2m@uiuXWf@Hn)Wx} z#|gCP%nKTtz<%8Td-%5JuXLk|wg|OOidS-b{}di8#58>S#O| zhniQh-&*Fz;9o6qe7H-_ISNCVSW|rZ?7vxGbQx`<6XN?m!py8WEjK0Pf!b;yExXfh ztSGR^`2!gHtw2gTrF9WTA81}RJ1ei2T`CFrYQ*#0-mQ!`t%-_nv?=}cS|cHkR@Y&N z`_K2~VKX(B5;g|nvKc2)3}FgzjAIAMP~a)JJ~QrcG5^si}OFS_>1D?}13vGOfd&z!G zEy^Y@tTgO~tE3F+_76Sl~uSUW&A@#CA42N*gs2InD6=Vg->O%p8 z?Q*iOj6EOU>oS%~LOggb6;?eSZ?+#33a$P~w6_~IqYzzb+DQw?GOBv{KJx*eZy!rO zQ&AE{MD|s@*Eu2J#Hj9zJ9Eb67z%*k=`?QuALu&~Ax7(`_%Ralp# zfJ%$R-LQSM=wLwYt7A+QtGV;A+F~?4ZLNcWQ~+4P5T`77e=v}bB0_fvS7E1|Ag4eg zg=D&CiA&O?zU9X>(n!?N@%ByJx>RH5+)>oM#9blj6U%pAi_Qc)KW#N!_d3cK>p8IQf1v+wUG*Y8uL<^@N4Tu~aVE+rE4FEIQf_@5*{9ppsb zQfUE)pOoteQc>vKJw5*H-`eC;0$lsf0x;|^f~#FYQh_uE7mM8=HNQ55LfS-j@h;u z>X2Jpo9He5ha3$W9JZ=bijKLn!&oQSggG!X&5qxp`xoMmvdV|YBEIvu%%=89zBnZT zg2u{9yAxkx%UbYX<7t!RA=dXA#KJ)2LDI~GiDHap_R1vw=7-?R1lf}`T~&H>Jve7- ztNBLvbuLaj3T$+f4aueONP_cueyiQUfYp;~Ke40M?fkfrt-FPpCePLZs<4MpG{2vv zKDtTclL=|8O(ED zzMQM`os@X{j5+Q+0t_pRMT1ez3Mq_3Dbc}JW})W7&ES$C%;XXCa1jqSI3RDr7yy-% ztR*+RmIj-c=ZKRWZ=2zk8}}fl4j)fy5W|H$3(2+;>%Q?wm4UsWR~5e-%X4{L$XiLa z;xAFDi7W1*^FwwM+xH+h$B4($>X{}+Z)}TbCfo%(dz&N*m`Qb{N-Ee*ncLlt$qGN? zFNUx0T77`B;SzO*^uI=51sijkM&_%Sh7r-NNusnpqf%|2&gM$gOLpXM^`U#v`@n8; z&T>!)82tdoK0~~v#5HWFKUDpFzC~Ii%~met2bf(?*k$X-6l(S{GH10~Kht*%43|c( zjt#jla&l(8SUjHjf@Zh4`0l?|F=z9?D^8N4P`g3s1GtLMv@QgDEwmP}*v=P)ydlCU*Tc2%j^9F!@4*wvJ4+@bcSo+kVZPpU&)$Y92`) zUX)7kF}ofpbpD4NF&b>Ht}>C66q{v*ubv62KR$s2zk?8Hyspf~`hn|jmclpaAQ2Pi zq=HYK8VoR7r6=s2_49EJc%N*Uz+{=y5#Q@@Y^gA_sc;F#p;I1Ga_b38ruJP6Om($s z^1je*;T{lB?*1~?pp2|^WTBPeB!WKX-g)j$wli`W;21B-F**%C%_(7ks~j`guy%K{ z;hg6%oyEiqDZjB%1f&4~@Z|e(T+a^Qrb-S5CFx;th4Us=vwiM|TbWigPO2AZ?Ae47 zkIBV~j?;Uq7s?nY81{_vR^rH50fjAtp$?_R66;!h^_B9pcRN8#f@kR-^Ks|>%C8aR&p4?(Ke45<}DNq zQ^`wNQ9}f(0cc56&A0>F%(o){7zsVZMW|ZUKfu6i@1na9m+vUW0XEOSNYwR$HQ|KV*&;uIqD5HP4r$2pR;ZGom zmr;yH3lq7#|FNL6h)-WKv|+hY5@ud%H+8KHUP(;9#dY6=n>+qOA}o&I4QB?b)*-V+C) z0Q57n=8w@!z?i;H%s9U#G70uI^`z87sORl?3<&Ip+@qRT(|KTB^G-A^?Q!5TM-DLI zhHi@07oL%|;h`9(2MJ`m>bdR~OvM(4s3c3?^qT6P9WqL!#R-q=lEiG!9)J!2 z3K0$$k$vi2!z?`_x*&;)#L|KE=rmapR5Q208J_En9WL_UBoEQPA|h%9jV&}v63T<5KIm^AdscM@)KX`=<@Nhxl%p?K?5@$UJ}3`9&46 z5O%Z8=Qlgq2l0m-UjIW*LNo{lTUOPM6~{H0euBY-(GfH2v!o)8x11S6d0crBFNgsk zg6GugKa*n66dC;mJ2t0U*{uNX48er_2Z9nU6=nj1y;v|!mA4IDswz2-1js)2j#7)H zi%C-PQyRT6Xo&YHum^4bLQdNx8WVd4&=)G!U_Of2fNtGY z6jz^lo@`S`5x|;gsoE@kfloURZR4++J4!T+SfwnR6pCt)wotTxyvcvwFmgU~9IzJu zpmJAiCA1#PaKAPfa=fs@RLe1*^TH%Es0fI#Ax*PMv*&YoAFW`;=WOmVuIv`{57e!C ze|yP=9QOmDO3r-Xfx+?No1xjsN?c_LygKf^3RzsnYxD>9%E##USiNSJROVis_o+&q z<}M~`;U*uZTWZuY;rxNjJq4cw1a+ob%`Bb6sS)O$h5fw$bd&7N=1m8!NG%f0+! z1shD6b1w>PAkaoP|MVV69@|4mRG^S!K>ueioBWKIEho0*95s!~F0|pwL(&e{l7(lUzc*|&5^Do)|ashhP1`wn1ku|`2=TB zw3ewqf4N5p7ze6Zd>9w1;0|tN9LPFCYrqI4xz>bga-PRXT84+?(6ztNawl&$&f3tj z!6K(3OP80J4=0t!G0*mV4pb2d^;V{U1r3Q&;7BCrH%MN6UPegflK5szrSlhUd~EGi z-SGNR(#DSL?>h<$iPaVPe=4UDIf5xRlj9`Ct}BiB+kAQuSJ#G5@t?|Bey>0bYiW0d z5%`vSIr-^G?T_cS&xzW!tddskg^$^!kLMFs=@qQ7#_GzKOOcAM*-``Yd1sSpYfb)< zP=>rjTTv+F*jkeDk(bT)>UXJ6xjfkwNl0R~wbcI#1#;J-!w3*`L@Qh|ObQDlb2-M7 z$m!-q!=Yv+G*8!iYUJVcY8U`#N<)dS7hq3yKB8cXm_$y|M3kte3|nCl_NkqaK^HzM z`D0vH&K0WEHofS>zu~>m^|Ca`S4T&;a7jmN{-D;lybEn_C1Zi5#GyY9vP9An&_QS# zIF`Q%XqTWCua`H-20cjp{T47GMEzvmfe1NY@e^&?*VM33~2-W4i z$Z)jSm|4l9#y!1tHA!$Oa@d`E@+?2wv79PVk+k%y9x|0YX5{+gCH(%Yb;i~@LCkor zmqRF0F{^HqO*&t@T&UL(Q?;YV)W(CXb({7qmtO=0z!#H=iA=0@*&xxFjq3m>64KX9_qZgZTVcnso>S_UdiYhxg`G0-S=PhVWw*l2 zX31cJ*H<%v44V~i>gn6^6I+rvZd&FdGA@XBRPHn)i~Va?J~*N9jJjv4lnsCl08jw0 zh1{lwEtH}H=9c_(66M!9jkIjdStJ66H8k$0gPYb+Fux%+;7H_7ndx=^Zm#{Jw*06= z5%9qL3#tBDceqcFo`#JT{P_AGa{ef=>UuN(<#M`XNX#avj+(0SoQ@Kk!Cu6lEK($` z$rekjy1!%C7^=Tt0V1L721N^a*^PrL!(ebM#p1Hu-yEQHDu6`4CMbWjz2e3nRdnW5 zXJk#fS}go6Cxt1`;B{&m`;eotwvMJ6w0?^WlDY0l$Ud}X$KNKc6x*UwfBk!=*kKWq z(4B&<5r+=zn3sy5Pe3C$8 zj9aFIsssFS)6Ji9Q44mhFPyZZS_(x?d>QotfMCEtYx2PIB@iFfoJ#crpZ+@QGX_jI zX~z$Oh!O{=bBm_F7KCB*S?s-)PoP%gtYjs}tm4i%1`k3GMNC=MpbM=tfe{4Unl46B zuG%ffmg)<$9%HoWnd8TDsZ6~m71Ci3cd`p2!&XoaI#4tur@>Yd-sdLml2UjT5f+ailSD$BQDAax_^fEpFos-p=GcK9r}-32*Q5F_xC^Kr*hOI}Awg&u><6kh-% zew;v*(7m}6-l}4Dd-4*Uf#eo7UPlw8BEl(RK547OAMd?Ak*b(FKNDJ8ccbHv()`g> z_sDPeF_Vk}X(a5yeoizg&D5%udtn2B$hS(#$?3?g{fD3wsLAR7SnUr8kNY<1XPdB4 ze)P9wt4}SH(9uA?ofu{;L(=|3E)M}#N_m>dTfx;hk{`*0*%8Oaibt`(TQn@gil%(P zTdEW*d*y83^&4lZ>S&r;d|X#8EVHhby%d?l1wSsWk2caDGuOZt`%Apk#1*Kn)KU%X zE+!9HUnGe;I4hLc6j?g|QT=h*;Q%r)Wdw1Fr@w@TY7B-zTA67y3<0%?*_DT76L&?5 z9s?={VOcHt#Cg#gumBnWp{xFmLWS(cKn_j#2_CKYiSnw2cJzh&*ljrF7>@nu%HNd8 zRmC4?E_+~zq+#6!(R~&TdXk5O{Jdz=UAK9pD0;)qQb!8=9QU(A3Ehuc;@OWaF^ z-PPr=1&=LCJ8LpKqBI;x>Tfk9*u7~J{dpkcTfY6i_4dt8m^Wx@r8}iP9y~%C0guHM zTVf14ZO%M7g92_4Q6L1z#e&*_1>q?e#14E1#`$V&W1|0Tu0nGBnjWVKZ$2SIhLt_P z6ExYDU-b5@1Qq!{S?mB6$PMBdz_&NL9_uh`RL$C_5HMISkdnvyVrh)n~ zuZ541;99AQL{F%VTlVwE5VKM03E`6_Hg8_A7FYB!#vuSz4u;(5X|TY!pISzS+JZQW zWo)IG)?u;Kd?(9#nF{MyWOx3I%%7>aA3SzH^JxospcIxygD%a*;)8{ATa$dRDl>ed z^2Qxj*^J*!cb|i^A$}MBqH>B(ypSy~$RANsRTcApg=d<_0zWhTWcepQcaf_R9A_10 z1&fBo0m!$u1asQmVmlpoI&Y281e z{#*n=LJthW53tsWffbPfaC~7;oF4yIp((KifN@cuQFmf;jzL76a5#>~3?Tcba=sz- z^j2JD#VVl&G?8V3swtdlZm5k>e$`yav7IdriyI~JC$jRn5WbEDfYVnOxz=ZaL;=pP zY#Hi8I5modbd*zRW$2kfzgs#VsUk2$C|(IXWieY+6Q`I>G-&Kz^p3Tv3POg3sd};6 zvVB8M@gbGM^k~k2WrjVeU)5@90O;dRa}023C@nG(0UetT6k+F~5AWW+l5rtoy zahy0a(gVWJK=7myHv&5bF2IpYEjd_JyTenFGx(^3>AH?Zg0r?|Pq6f4hDtL&EgbS< z6o_-4iJcuDn2h)!P9+G>4Ntd`EmYleg7GjStMEzMvT>!{G*esnh2t5Obvsg-m=@d z;mNSP)3Ui*a1np8wmo^oib7)RG1`DPvagVNr?^pF)Jf@z6JO>xku-X7cEFCe3 zbb_I1`%R-GRER-jIzN|Et8II5$HM^siQFXuoV3b#O18v5Cz!9(;?`09mWt(C#9uTb z=j1WCWiB~Wq&BAgUCuK9G_g39?z^_Zmw}s2wGwo}bqrhP?bRC#5)&@w0uYwM+^}96 z2@64|4Q2ADMX|p=RcWw+b?7#{s6Ku9 zm{-016=DuWVQO;n_yblBuY~;@RDVvT%J6`Pa#Fb3*?!y1@rMx>vR0)a0L^FxzP!cD zBpFrN-v3(qs->?iIFCqhJ)5R19n$6iY2se-jF>t}tFikcC7>5>=?$Gmp5YgAjgitH zDt0uP<9j$=l*$LXgStYvMebd>*?sOD>_sMqVMHx{c(>)~(6p;-p7zr{*nwPs?QtR` zrvLI`d?mUWOmJWAN^i+bUmCl%Osn5zhBk9u-JOqp{4z@~8cW|->vSt^g5SV}m}Kx4 zN5Aq-?|UZWTA_<+6fXP#yM}P_TLZJ9pf>;}G1!s{pB4(v@>5V5bVQ*uXdzp0A4cIe zxP24@1j2#sAH2ptgWZ^<`}jAKK(T{DB3%t@&Ym>gL6>bVHP$=!t{BBXEOOA_7-N~p z#h{5f(&nv09?QSFUkssK>pDWU9<|Eq|MQ;um2pgJx03{1bQHR02C{~ga*z~Es^=?J z`uW65aq3)8g!!L^6CSR2&y62sDDg0rnm?p}*Girh?p^SJwns{Pu%4Gp*O z(sHc_-JaHByv}YY%r4zNz3lMdzk38`{D<6gB&>$|l${edn+ILgx=Haqk>n7$(iP@- z59OzpZ!PVzU*m}ER^I?a-Ii*=7OkHphOP5?Lh=!JvRcjrREKfmNoD)zG6XJJZhDGd ziwo(&Pzq*#8PcXsOJ1EP>~b7y_Z>pgjC=jIeuCQbRN{^|1vHHBD4dCXGXe2Ee%F&5 zZIzm}v8tlhHLpJmE^;wd)#cScTRcE66M;a0!DcKq1x(~3g4h9cgjlG%q*W%9JkcCa zVsMB!W>7y6gYX-h3i~U)Ju?b{KDuj`1Y!A(^ghuy^ZI7ZIWM9VCyOzd75IN&puIWT zMcSf#*?s)EUpjv)VYMkyk=06vJ)ZkBtEkN$<(9}Emgn`joom0?*hqZQ{u{8ZHvWCH z%Z^Ak2P?wj=CQAB<^7(h^}^{O=w+cv)2jQT=TknnGO0|Y!WfX>o_N;2g#&Qm2(_YI?IASY}7q?&}9EJO0>! z{Mk`#KyOpPmxYe9v!fdPd6!N7w$t4OIrU=ey^rWyQP*jVkUeW8mx)dBq<2vv*|Txw zTo|~DiusBWG3P-FHgg*pM-?s^X{1t2lySr&MFFH` zpi0o1Gpi)3bP!@#eAvTbD^^s#)L&3e$GZH_+rxPz?3|)(Qzxgh1+46}#g!x89s#wI zb;Cdd#s46ef(g~C1Ux5u|E=HNY<7WRTIfv8jC>NIgp;}@`}rZEgHh3Dbt>K@ zH3nG)BXZ;R4ubIa>@=uX#+fsmNr;XwfBT3>h^<9#)_%oZKTU5?95edLM;ss|*pVDsg|>dQ77Tvt^OY3F~4xd`F48 z`)y}7kx9OVV7}-RNrg*pZOZ`-+%^1kEjNLoUuiL^ar;@i$L)AjPzL}kk%6~&dLA~( z%4)Zf2dH7^(Yf18@xsbRZ>8Z$na5{a?LZ)9RO+0><4WIEz;ZjJ)HG&ar{-<0>@72T z=n=e52q62c$2OSt6W|c?x%MC=g~+iA$wM_k8L*hxtm>X>D?*!4wY@r5#z~J3n$%%t z2@;b78+q)Au^DY>kWeuWo>Cnz8wT-^i0KZ)t%@KAJmazFBwIo^7yxUHz6s@<%OW~lP@_7waYD{;qO|5IoGr&k^S~Cm&+a{0fit! zq-Krg>FCLNqy*HY`FtesFi?~~9K*nxTSf(ig|jY*V0UI-EJP!^&>^svRxJlhh4isT zjSA~i@h-gq_ivgxb@JeWS3@^TW@R}LiqL;5_d7bgS9QEAg$%>7RCmjSRRR0Y9>cYS zzi1WZaZ7rF3RB-pJ)f_yQIG4+-ph4c^s9dBdBMg;z^i+9GfAL6-)DKHNwuuRq5zKz zgvJbcbu$?Rq6f&Y`|S4_oT&%&OVMXBBpXdf+87)GwitUaH2{JHl1PSZ!C-n23_dP7 zF%Bm|aZw68jYJRv$W$>nhOdsvmWnxMEmGoKH)SY;S>E=#rfm98DmR-JHM}fbB>JkL zZ2)hHD=z~eJGiEgV5P;4D5Flls9Nqyq&51c;)6uQN4=!hK7I>puO=$|X`ASpP_KLJE=+Gf)FQSV0SfoZ&}9z0 zWT~F+u&a%$)Oj42p5R6Tyf`|suc{rYL5jk{0C?*V!oMfdaM*4#fLTx+vy3X0-rV~J z%adV|+Pw6{=;)dvq_#Zslj=l8ifxwJOy15rF|y3_aT5$FO22>pP7B2!SaI)$T=`c& z>FKP;V)A$&jU764nsjlXP}OCeauA1o=!v6rQkRB#=W$LnR9yT63JfA26jg_VQIMbm zN8(JdyV>JNu2tBl9kr^lq|i9db}?meWyadZz#%(^B*$kj<$rQQVzLVb91d5avLUFb zu%^)6%X{rb*-!C#BDIp2YIM-CtqdNws0FV+K|h8$8&(8JCr~Y!it6&nyr7(Nx9H+< zoN862MsG(o%+q_t>TpC0vMY=QF+@(so2S`-(1yB~SMF!yvhQ$t} zjNd9+8wid_Ne9iXdE3^BV&RB|x^F#&>(IaMizYKDn+|jl_1=4|#gp ze$Lq_CP?3C$y@isivIO0eFXy+E<#0qmtP`?>~AaR@9Z!aLD(3DV|KEcw(ejf?Rw^U z1$*^p9VN;twXJhSTi+FoaFDd?c7RQixv4moC@-BNG^mnJ5Ian@Ms??y*|asMbMn1U z!#j^SQ0=x*9sm@BA(u59gkcpm5or)nVFSkaWMu`nAtk^dqIO-uia542yOi)Y!0*2! zUr?0xF%&l`%T{ZBOoPey4W$o4D9RLWx*aFAYR9AO8|Cp7_Nut~&-s5Y%Z$P0wx_|a zl+t;G%Py@i{Z{RlQXcg@!2#xQB{J43O9`@b=XYb$M+N2}aPLZ}y~n_<6=K5Mm!sujY{d z_>8!*vI*Hgz>NLriO3$)f-nkR5KBuQ=etQAKCy7m9b2X}oQJuJ``OA(x+8kzwCiGvPUI7|pEm|auKtJIT@dwvjJ$dxX;ChnkFBHl5>}-$ zSh2ZVPQ2)-vOOV^q25O~j1n6sP7<8_`H}gEr9sy2J41sb*O$4|{qCF!L^y>>RlGg4 zJCfelas84eB9NP5*{lb%p{SBvcpY={h0r&D(u~KB=S#mTBkC2kdu2E(OD_^VQCJ!3 z{%t6~k(pX6Oj)Q3`>TUGH)>D|_gOvUt_lHG$9cfTe;|<>XA-moBG6JN(Di}SlJ*Oh z;(|RWM1Dy?TZ|vcW&a#Rw9C&_T^6=9Rw8v2@6k6kL8zmEHzg-5M-ds6>!sK~yh4eN^N&M3}PmR z&O}4HN@OvBV~_+)vhly)ibGurlXUuqu1$OcarYGg(9+XcM|}J@v0etj9tg-_cX7JfNXpil|Fh*h zgcy}1HbqOx%elT)dcULk@`)eI9>PZ1vcLIVPJS(&NYb0EPpH{A?@e2AmP*c9$H-a6 zra8eRrp>!Q&atEsip;ve1yCMu^df}pKu(rcA7s@HcUHl8rZT~xAQIScDe>V%5AfmU z!Z68}o$xsnKm*$0rvg*#U^t4P23w6@|AsF5M9rU=6cHTnQH&&8Q4Y>dx7>(=F_vLR zO&-?FvU&lAR1-a4Iz%!$&6tKD(}fJhPG#HD67xF2!cKNXcMQO_22{H^$jnt--=g8W zE^rAYro~UQs!E}h?pJznH4%9ubeVzXpbB{ttd0bL8mieF4H>Cf$vmbe9JW5T?&E5$g0+l3Dc|HK+}$kyEb6uP)y(d{i(nY=zP zYstMPq?XKfL-WcT5_*12P+=236?J!IpA=44k0;|>66X{zOfZMJhV zhyRWL-QujIZmgV7WI5H`e}LjRWEssY-y0!3(!>>wLy*ijLWuV0fEYWs;y9E}^6Ll0 zwHaPS(Nd&f=|~*P_#OqwCWvX7oD@s8}?Ua?+dU0?q{a#Q`j%^O1!;ApS`m?R20@r$1 zw)n~|79{RcFFR?EV~$1Se`)Xt$&gFJ?ex7MVA5B4wz)FZdVvtcBEeZrY3T_$#kmr~ z_U~QJ`Rl8{C%sPZ-aov)3TUFhO1!bv0N7&Dzz9r8!DV{kv?BUtK1HLEI7fwGVrDc{ zj)63;Zqn5!f=Hh^V=b`MD&aQD^r8uK5 zj^aBNBUC(29fP2CxV)v6x*p zG39$7EllXmBV#OF*1anDZiD3!NINAOyF)E=_1O#}K!ZYp z4Her=$W(yCxtWvkZh&g|Ck!K)5RK~#K*dw561fb){Xdnvjf5kS`X7~Zkdp1OxcZ_2 z)@8Wr_8ut5wWLoGHD2V!+t9RjFwdmNDp-!74TWsjlwMBRyAztm{~Y#Zuos8*_sYut zKLEx+Ilr3|PMOzca}*LYQ|UU4#PGINo`a};hl|;k5f)&SQ3(lT-b~WK36LsvPe`#J zn(xizbt(u7nMs8pSg>?tcvxYuiV#;AVQLxvH=Ir<7+?~S2BrgnAmB|$0l)&rOkfZi zgmBWnPxc;&t?M(Id{-o~ti!R0)IB*}p8z=qj%{5dIfyfJ>i!_#pR_E^DgRmgY2cPZz!~H~9z(Ue zP{HG1Xv44~FiCMXr%~nhuQx>jz;KJzGu>$?qf(pG9-*xhAR!7%Itl3P9wX@_JWPob zcTH@yHEK?qF(3%(ng}~Q(V`qPfBq2LOw3=Kyh^o01~|il(qO%cqzY_mAw*} zyb;QIMJ;(m<;<*VI7&cnQ8z#mIzouL8MB3}7lBw~{NS}%t~I5&Q|@o=OpBB&mSScBTWXg>wFvrfRT)Y-yni%!Ehygp4pQvGtuJ1AmNSBpNYE=KtKjuKK2u} z>1;rNO(r4$_+m`a&wtKQia-G{vY7R)wxtyVLe2(^j%b9XvXV9b`?6&EfCdbC$P>C8 za&iZ$t!1N*6?Hu;PC$G?!j&fVgFT=ayQu@lH&?>4-*Rf1eSySzv+&4!!~s8;-bCIA8!!TpD6ALbeAk&74O$FiA7O03^sxcbU+8BXcxw)ZDYP zP?+`XsVC+0l(Q21RUyF`@MtL(cT5@~A`anoRi%=)wFR}OZT^7Ev`Y)d=aWr32&G{5 zn%?4z<^4spL)^{Zt*QA-LUj7t_A|?=@lP8*latNSe)|b?MtxDf#P}m1eIq6`-UhHHP z&{L~Z(GdX+uTMd5>thquS#L!YZuQwRg(q`lO;cRT2P&ar5bIc|Dri)hb%9g@OckAB zMO19i1YDR-&+q?00No&I4%*dD#83qumjEsrVYlXRP;mmOgu$s2wwbI(7lX+adagz& zrG1prUzb#t^9xzwe)2~X3SWZ6L+!n#1Xy-<)2XErSRt;!6!+#kufopxo;3F>-E}Hq zR?Zye98iS_%iXrCs2TuVXrvHPj>G#Ojk|o|=dTn#BFUJDUfwSuijJuFjhCeoqpas~ z?V{J}dO!AUwEK1d!~h`yxYbm-fx?qG1;+xyq|i+S#RH>F2f!d^TA=^?vPAj-1qe>c z8;u^In5bD=Z4l5CWg{_7wH^wKD&*&Va;9hTNn`oi!UI@PhGS(i`+ z;Er8mGN;XcTRzKt`I{TLnUjpyRWT9vuji@txys+_^SMserm%i;H40i%Y$zpX>~AZq z0E&PB25EsKJ8J-w2Nnp6AWRYt1u&?yGdM7@Hx(M|w;5&k>M+tB*dC+P{zOvXeo0UU~#^T71fIZqIV4Ztm*!*+fto$TCV=+}^Ny4{pD@y0pwz zc?$rrqn~_U{$eiw(^SaI6y}OoDF=gm7Fn!#Obl~DcU!pGib}FH#cluA=%FmlX`(NTanWY7F+8GZBqU)rRn)l+^F`mwe=` zP@N0=N)87o4Yt7L%(3`?)Otk}zU>*5Wy3aiL2k@u#o|utKIo)<+*kqyy6ly1tO^jF z(<60t<@fw&T;9uF|3036WD&^H+?d0L zpdf*8sQA!%Q{)0v*TLvE9kd)-TOIAe^x0VM?+|?C03AFh}=~*H8U(jTx}@-XR7)@*%g&7w+qi`7MN6Tw%HlUYBiArsz;t`DrF732@N^G3urM5!|T0md~KMV^-rP&yP7hE2=pn6Gc zJCyC{ZwqyEv1=SKi30`+jG@UWjFo!JgwPB-8L0{pAvT&j<28Z0)W;uE4&eB>n(bP4 z8-Y#MmiA7KX%~!a4-~*bC6J@Myw_1-_&wW!k_@46)txk_Pr8!;7!v@sOIiU zBDc9$f0nt8Fu;Of*QnG%0(Kn+M!;OxX6iT%#RzgRib)u``Zfj+czgGzV3BK*haq-OeKExZd&Jd`~N*jUnk#g z{s07o1VG6j3^W+UK}|?B%m7TpD9m9%V4uI3X`cS>p$M?q^&?##9hkv&O0tZoc-Etc(N zqLb=$Eb3(>nS=Tag4eo7grHziOK271;rVbY*ccuz6=g1LQrNoDVy)yo|KqaofC$O3 zGf#bEq(xIy#EC~xQ-R;6F#)g-9a82<#GUH1jJ>e8NUaStwvL)=rOMdL_n&p1IxG-= zuFMt*LtBwDh;AhDTz}!0Ci%pfZAqrcq0>&?-7F#tS64x6zeH6qi&z@R;~r)6sP0EY z2vZg!9XB8`kt>~fA^&re*W4_00)PPu+XJ-z+iBqH1w*A+K|zcofddM|D;bI_r~17A z`?5sl00gl}%u`J_5|&5#N^H>35HSTatu%UqCL88;r?s&&Jn1l^Hos1@!fw@{O%LAq zzPKHa2y_jEbx-4@*HSMk9iJwA6cnTxmbWXZPbvzUpIS>(FxChwCDiq@+Gu8VY;?@b z#nUx5tdX&IqZ4?a*;L_mI<#kmyx-R0bNlT5_j~n@4*ToCenbiZKs42oQldB*NGucr zWJNP1yEQXoeGRmg>}^Grh7$0z2{ZXAcV!mp%WTo-L0ZL%lI(EKfMlR}BeK8{5fDV( z)?mx2Xd+Pbx8+8idYY?Fmqm={fQTV%ZFHf4+#cO)T2(sVMs)gUAfr}1YNHwpIGvr; z%b|DPfto^KV`vo=I%t{j+lPRjlX)Zr52^5@kKS-2Hk04o{RTitKyOljiN=!5G>FrJ z%uH<2vCdq$kx$&zs*<#!{w6N^> z0vH^msX{6$G`5yL;7M-@h2CH$A!FV-B)7R~D*!RXl1Io^d_gfDeJ6~B21=2v7(;sM2{GN=5$#z9-3qNSiah~&Ve*AWiuUuza%|?(};~!Ms@r+;I!NQ0-P!FL6 zNXQM{??F$dLh)uXjAY?JF-&c%Lr`}zrKN9D+(zuxID7wQ*OGbz1NH$hgYz^$0s#sE z8lnIDvPAKSgxW&NyJl{Xpyyc@ZR5rg@ee5Nym-QGAmmxN4^RP`PaQcK(1a_IpcHLF zN>DFov+-_3qi}RQ{?Sv!A^Vca%aW?tV^&=Jg~P{9vP6NBp@*POG3ul z3n)@3J?#cw&;NC9N8X!7OgwT5fR|tZBXNPGd;PN4GO$ooO-W(QfD+~$6X2k-!))U^ zR}3Zh2~`c~h(qJ;nUXAj>3#SijuWu16(l~0p(8h5vR*4An+n|6`x>B{$$iyC-Bx!} zDP!7v~_{-Y)nm%@)Juk;zpapMHxFH^ixG0X$t5o?KlV1CDx{HyVe-<#{XrP1>4*w zXB0)eHvd!W9hza```vfK`|DSopB?JT{Wo;R+FzbBSU3emSsVg~5dcwzf~#490vR0v zs27Ql7PufaN|m)!H3pk3ejt~|o^JHMV;k_#CMox8AE&=1AvIDp;2@!b5nq%u6#56V>WkXs^G-kXJ;CvB$9ZjrRorcnJtB;oS4{Co1VTY z=y154u$Wv-E(2jKSkuLr7y(9z>3SNXdWzgE)8GB+mRJx15TlL(3jq)!AS%QMj+%Z) zkl4LcZvXqRMB#u0COyq-PipduDmjg5rqmO80Vr+2+(LjTq@Ab_PzVa9Nm7u>Lf2^= ziI(dB%+hX2s*xU0NonWtxo;`4#HlxC8Uzd|1x)BR7e{S{q*G7Gt60S|0^%-iUQz03 zCK$nYYar7gffmIxyPM0*h3*(QflLMhM{^pH|4 zsdkNFCwGUYF)q2 zeemCA7x5&0D(EWoP@W7=n?lQM6$K z#m&AzY~9ZzMFSpKIVzEC%*w<6|6N1?Aq|i;Z)`rq1nx0>*pd(rhFr|2=P|9}A%zp8 z$<@ENcGR$GM#GqFnvTK=24aEYStZ!_T1F|U(n({3-IsZgujg^Im?e3yH%Ik`? zkGV0pYPg$i2h;UUE3NkXQqafZI!dYPb&hFfsw1|$zx(bT<*L4#{y6JLSgU`QPG;Ke zTQ(sqP+`jd`?6%>hy>$EO4Dy1FjxgitzgYq8lB-54($=izoDh|hL2EI5^2GJ03+f+ zWYyGa8*E9$!(#-m01+Etb)5`dl-9hFiLXZdP~N#oUiEDIuI2pae>9bI^>q&N-EDI` za*QF2>EiTAHBR;2btbh5s+`qzQBGzW*57~JL`sUG0SDgcuW5y~1xTn;3U!Y=1y+qr zD|2*J2nts0VbH;lM#lk1nLLy;CPi3N&g8|Xa zd%Kk(xl}z1a2#2OL1E-nuFenvfXqF4y=!JeSUFswcv{S2!s&E&DHw^;w{BXjCkS<2 z!nC-%z;4T@k*|6(-(w_>&M{op*2Vrl^CUg*dH>fn@HMSt&4}RHaG~M?lOaHnEc+fB zP=!~zi_o8(W0AGDJaBVK7@PzRgc@iV3`76{HUQ2oZS>J_Qf`5Uh?bnh-P=Evg3V9}taMaiD;f7Ts%}jmc;Sv_!^p=)~t?mXX zL^9Q_CO0Xt5uqx^k2wy^`T5yb@@xIpE^zTOgBXw^FF^8aO*}}+qz7dVm36!GA$J0< zHafHb1VkAgH*Wv?vSjT51&KUIlbU*PZ^vnkVe4KNH6tNSyx76D9VRu0sd$>W!wbQ< zefUstlR$B3d7AK*=#z$yRf}(&%>vWJt~0;zG7W0rWG#4WldR}dLyx5z9%8x9KRpJ`m4ROAaH=YfQpGkkPX5eU2nknoE^jeG zc-%wdHw%oYZ7^Q|$xYKR1BMBq!P6NA#3&OSfyaYJ3IilUq+!ZpTt2b z4n6$Jz2wU?&;CNW`SFTp`RAwE2&q8lV*U<|DGA`gugC(g00jUYnJpTK%_?{G<{V&L zs;M4ZuzR;J{L~v+R4ZSBTSUAWez`@ z_2yzSDW^+DJ7OD{G;!d8i^WEnfuvYt!3F|&6IGI^tjh;u(m67lHHXR_how*i2>YjF z=;gp&azlfSgn{EGbQwe2-xQ#H6ckzQMZhE+up6OZEC+T_q)Uzt2uXh>j>zHu-r)&sjNQum-qhl=-dB~ z&42u_|8xJJ4%F}#h5!4qWb}*%KXAtrj~+sAN9lTDqmCA=`5sPb>B-t3rS*rkc!Y#n zc9;+nNEtV5m7AOtRVc_payXcPgvZ1Th{Q)OLM~+RX6Sq!LIEET34(+b>I5if+=73|HSb*5J7$2yL^R)$|#mTDZosDrb^ICfv$f=S$_);h91$j+YZ> zx1hE8v9YK9hf89Una(UP|9Rk^O0&%FySnUYU;rQhjk##~wAfxLmX3?~9YSy{R4qC0)P<^0cxwXJ47z62YwxnwfIB^?!0iE*$lCjQNRyLA>~ZjgKiK+ zD;KU1-3e>h4oOGRU^U(Ax!E1ZeOLFEo3p|4{q$d0*St*|2Gwg{tbJ2oc<&kRLm2ZW zAQ*$AP_t&1d(%bP6`HEK3ac`_%&3y*1qqU)3z~|65U|YObJ+g334nEaFZC zfr?GBxkA>#%}DYbf(Tmj|NF9J>WGC*V@XqQ9x!NSxoTi9gjPZ498Nq~!MPPBDS@j% z@E59gap~PpU$IO-+mDbCaEtXC?&79=~XHO9@mzj`g( ztE2Ctzq2zHZAI_)S~4jp^n(=uAOOrxfuomMsDz>#UQp3dEPSNy>!{?x5ahMvI-b_t zb_kiB%^M`_dHTljkfVd>Ih;F^VQz}aV!M3yACFDTN=o}QT1sJoy{?6lB8Emz%DcQVn7QB21G^%rB*cU7l&Q;Q`cHP;{X3h5Sb)R*vJqJkX*sDLj%kK zIK-I_B(&Pt03@T#gTa8If#mYr7ZC~U-C>~$d6UbN7%x3LV(F1k@RA?`Y#1_=LxH3{(Fa((qe9V?WLTsM zQ}j%R|_*Pa9BFjLR&K;3gOC& z{Fp3ZX!i3;W^CdeXcwXUTPw68v^6RnaKt*xqdZ=WqEMYe4wF$9m1~je%f?*8qcrjD z9`UjXmf%KLuSzVy8@_D=#KH-?%_;JPry1U$4@jJ8{wA}T*7 zBrw0sfW&zo5Zp|}^!!D_G7pDlT&zl1JC5Nr@up;r6~gi5u}njG|>P_fYL;5V1S8(K-NejW=G)=a6Li@ zggRZNhY?bcoGgp#eE=%NPB5&_^LnHx=i5HnHRp3PQ8~8H&#j`ZdS2RXSJ72+N#0t2 zJMhzRq^MquJ4wqkE9daOfBt>`{$9LW^QF)KlP9TcS0b%cDYqSPpaf0JXGtMw;D|a^ zz!nGyt|X6jNruxFC7w+JPhU+-?TX_#&%je-I1{Lub3zt%XV7&#Sm`Z(jVXjMvNJmF zX;3&?@APEzjh~!8V6E$%3>*@Mgutn4p~S$Y#K=T*I27Z=0@^G7!GXF>;Pku9z2c6cJ zNoi;#aYX|w7H*HA1XySyA1-02Fb?CC^z5cV)gC0bq<0%k%Jw^B=kZB4SR>vXZR<^e zn`&C?x!DTFYYH9HHA&{Xl8r=Z_Vz?9+G?(CHDjW52|$S;ibW*G9R`^ub*rXd3>{Jm zUSOc}J=+-9BEpMU3>4y3S^N?qy7*&assH=3WbX_Gq<6=YY#u^x#<^!aXV4X`3nXp5 zc!9tlB+Z477zd#C$-RAvNI+~yV z*VJ&b2pg7UWu*kc<}A8wnjwQGk&=6;$D8j54yJ(s zDhLIHl;B@;3UL}tz@GeV>VSk5*EpDdY-oMTRhM?xfjN+Rz)OEI^4nFA=a!yk7c z?UPVODdZb+Y}S`Y$QrQs(g6e^NI1iB8!f1lfVW3mNE^>)k?fG~OSey0o0`KOiu_iy z>sO(kGvPvx&rQI*7uoP7Tr$%z&Y;!I*p;+!V6jmtSWKo4q5J&rA1N~~mFD;|&C%>e zfo?&?UG%Zv% zBTYPb!Q~xgwTF&5!E4~TCL)B$o0Ji%O4cjU*P2VE6=;d8S52&us>uR3AZQ=8mAX7Q z%|5}lNf{tN--ms_gDM%TNA>5{J+tPfwUVfZ`K_E^*E;sLNRXj0_92{&MAKi!qetDK ziKA3Fd4}5`R$&=uo7hoxNAR2N5H)7 zkrOKL{9{dA)vQJsBBF;4#nLVP`Vn4~0u+E68sD~=GRgR9J)2Y}CW$gprL(?4UdEi> z(~cHxyic8ce2;wm8y5CqciQb6ZOyRlj9%K@irxEs?F;m^b^X3h;wqP#Yx?Hc^`L)|oaK zAdVO)FeJiXYTRJ70FZG-#u^~xCdidaEUah45$fKcjIg1dSU=!D%lJ?T3`kYH@a;EL z2rA+W<$F5|$m}qrg7vQ|VKM50*GFSIt&C#3>M<3aT*&4{p4Mtk&(+9EcSa=|#OBD~ z^|BdTyR@rSM(9KlEy{w0AxRJyI~0SA2%+}?0>~u)`?6&73*>oEheGwE$K%#)oT?<^- zI31}9+m??*<4(F&HKnDduQ+ikB|h1;!)f(c`h3L7VcpSJR_613wNb?e5C>3rOaL0E zAz+jMDA@ZrTjtP4j=fWN(DbZb;VW>PrbfnK?}nxneaYrC+-w?Wev)%;2Dp+a7Gpu? zR3wODK=kb(2QKLmD=ApOpeS~VTB%nH_UcAn{NPu)oj;G_s0ywoB)#7eC#k*0fWhHX z=+nyR%bT{#*3z_Ht+p1K4WHNL$Gp{vIEoVbx3LIqeC4{M1 za`SFMtaLqRuIcA&RYh@Ybq~;jfWTp97FET?Ml^Ti%GC|8>qdM822(l)Gs+q;pOL5X z60>VPGh}lD6FCCxf`TS06rXQX?p>vR*>EDu<^6?+syuNDM(j zaa15(*67S)uc#30UA4OMYk0dobsqb6N8y66ZEq4Tn^Bmb{AzkdwZ5TVTh`f)t>YWV z&1Jb~f&!-pG9I5hoj8O8H_hg@dQi%id7XV)+!l5JYvSz!B}yK3WiY%i#J4K1P?ICESN4B77+kciFTt4A%MP-sh5TclDE-`*>iso zhx-iLn~JCzSX#U=Dkyd<4@IDvIe0K^EH1T2&d}qwE!Ar@{CYH~G%viaAB${p3?Ys+ zUb`Cy{g_$7V>ZcbCs2VQVE#H)SZ2qvXoH(Zg-nl%uwBN5#srN7arSJkyAt6)sn*cM zIGSPsVhRICt)s39cr3+e6;uE_fXWkMl8H&o+_;YF1WRIjdH?&eWb2HDN;$`qd3thX zhWS@v=Ux>R6(DXfc)`vcr5y7wNaxlwA0OvAp&B(k3G;^BkK`#=mPjxTgh@~ww8G-- z1ldbKpdNeg{o{f2YCCVym2cOm`|Gw~#jZ-Z%2OUxa zLTH#s0*mRE5C+H*5p}3jtm7?4Oy#P&VZmu4BXJI0Nx4Cafs-OW3U=i*2J&IQejhje zxn>d}(V{rGh6@!33yyIpxQIM-h~=IkLINfat|s9%Y8#m{G1};Tp|NQFMewzA+uUEo zPuKHReXLfj{eSKC#q<65*UwM?OT~ZjQPm~O&E1Sig=mPY6=JK;Fo!Ji%^ECGf#9TI z04@efHpR$c)>F9<$(i#)Ox1y6aLR7ggxh|*-t$by`B%f#OjcX^IhK>;nXLFk-8|sk zhUR8h<3>i;>LOKBB?u4kQ>TGqhmRdIdMUHay>$IoFw~1t{Ek43A10SLX)`4n&7~K# zUNKDn|Nr~;gfHw8lR;r&&g*7AC7ZBtW)bk$L=t;3XaLZNa~=dv#v`5>I531D@Hc7p zTdUEy#Fe4aTCVH23_Edkoc+G8!}m1+jzd!Sm1UM4y>P;vOQu?eFibyM)Dq~62Am+Q zxa$?%9zh(jVL{`rXmFZ8j{AncLaNqEtDFASq9DyClckxp+IXv;`^tKdRqYoSYm`{s z4Sz~h(;ma-lMy#Rtcij^*mw{O2Lx$9+FX65>Q^r%Dmnsy7HMdb|NF9J{fvfjdc_mF zLhx}1iE3f!Uljo(98PHq!M7TvsfI0hdC@X3IE&!Yt?tsDMYs9;?z6w3`K-vL`70cf zX&%gexrFB_*Umtjs@7%9)=_3_&4=G7gBZiOx zi!fp%3TPykxBK-e?jud#@P#20aK@H_oeHKJo1BT-U}Tx7sHSB*8=V$s&{>HEMi2o4 zhb9*UqH}mG5T`^WJ_rEEo@NHRqi!1we&zAjLe}B;YF{Ck3IYj=&DD1Zh>Bed!|M^| zy%2+)_l_3#s6xCCs)3i$9XjG_#0-y-GU_GHYdZprnPRf`&wTE=@KUT@3nTud&Qbrh zp3qFr)Z)IWODJS-47(3`o_xv~KMdDD`~Tka^8ftHx954GaI++jSm=QN`?6&Ej0PQf z#S4ipvV6#CT4AY_7j@$pPB41OvY=&MhN2v$GbN^!fU<$WRNH9QQ>VII(qUu;Un%xh zb>Uy`?1K$uYO%NV*KnGmn=-dWr%R>rDC`Xn zM4Y(bhyY%n&*^=LW^<&Fgr4sW!R#GCAs!APL z&O-?l;)+Icf*gcp1P#U#0RX@Ns#zks)Rt{J=u;A;!w!cwc$TpAW^!3-ym<+5kDZh17(=86H|@7(KGPJ`PtlD#=qhl2w=@ka~AyIK50N{@=b|q8mGN2 zYX;os9a|DFtt`2J{XV1$|D}Gqh6h&L8^U0Sf|Z$~VO*eP!oH4q(`ZP+j4^V7f>%b`%w3ak* z)pZ31aqKeY4=gCVYF}A|sY@<2D5v_urPM*>oaD_L0{{SyoR$e(RiX9+ShxTCvSjUu z1;Ken6O0xzZ6)bFVXKA|`12s`FnWQRmn7)%n@9pwEnrRndZ#zjX%xGjXz~R;Yj5#S z_rF_fV?hP3RPV8uqlrTqX;|dca&*ogn5(lX2tSf$l2FZP?#ppdtDMscX!EW`a5M_) zR(^+p6Hc$O|NsC0rSml+6lg3cG`Lh4kvF>d-`1lX?Tt|$HDRoQ4|@d#cv#>sfJjeUlur~dCKY= zc$rz8nqO;6?dpcBBS@C}{lConYxAKUNH|#;U65o%#}RS0i47XExdg)$a1K2~;GxB4 z6gYsvz{mqfft{AuxYJose5Nlu_Z3k%&P7b(x;jM?qDYP+n?7fJ5BWLDGQ9 zk^$xzLL&k@1p+7mds}(OdVXA(EltO8X`!i8^GNAbeyHdvKqi&tZHE{g2^C8sa92#R znKw8xTP&Lohy{ZD94^7mB^q(C3tq;nMavS$qU|lc6=@RX3qi)IQ1Cut#?8b}$3N?{ z^*22I&GB)faN6*f{e9bY{~y16{PFcatxp!*4sMds-hZo+g%Y;Ku_6%lQ532;VE_BF zWcv&TGkHV{i7v8vCaF4M=w26L=M+w53(3P4<@EL;yfqRMK6b#aKIK16BzZec5WkE_ zi*aNSa0x&k4{>Tej;*57N)afoviXoZNvg!wt5d-76EH5Mt|qjJgqv%e-n4}`)-^|Z z-24bx4y@g95(QOwvFHv6hl8p~P;y{8=gFufeMKK>_pK&sCdcE4$9})rRMOQ56-TH- z4lz(b#M85UFU;tJF?uvmz-W+3po69a6r{O=E@x6QK)`R?R}46zEm{e*qkDZQ;h1%| zmCGM&UpL*j&xmA?DSP7v4PelVkcEVa!xdmTL_!#P&L9{SEkqL>7Y9U{4#BdsUpE-< z0k~EuQBoB7=A9$aCSg;XZ+YS`zW(lSj{k)3|Ltx*E~$U2uKVNv{yOh}sj2yh>A$;o zFPE6E^kjjmHqwYRgAaooX@f}+Mvt8U0yoMZlSv+1G+?A+H5`Q5g_Z((Y%H%Uj>hAK z?jHD1>4<+?|9Q(etgeyh8R&pLiuB|NenchE#5*3bJd5X0qmdZe~UVVK}A(0A^<6TELLw zE*dbw15Xql8hg|k2`ph($)EOekIUU#DB6;nQ^lFwLFIQ~1p;hf#uYbM%k02TMu%R9 zb>f2MNb=bkJ&D*@u^5+EjGl@!gs-nyh2+j#NO`uO=rn$(QOi5mZs%9XqvHy-E1|b4 zq7cM)YN8Z`d&sS`rEO9-oQjXXLQ3y7%d+8bjMB{PBXU&cUPe)J8AQlrF!5GH z|NF3H?2HAzdBqc&Lh@+EnSDJb!587_5>2qWfx4O`sfU?(Ah^4NFi_(F1W4{%V)%eK z!Dy#jj)%H?oVUYAT`LwW)5ME?@5J7q=Nrv$h*cnIt< zqzdlZ$&(BSumHxT1#UAD2m^vZsL)g(h$XKY6015@UlGjCIT zI9ypoyJT=sqv%SN@Uqg4C(qm!>G#o}&lS#Rk8M$7#_8sQR`)w#!pDob%*~f*r?TS; zO-{%c{37jFMV7ITHr6N(aN|jvG)EnjOObUG*C>OK!!H&!~DS=$A+UlmK$% zjO5uHvn*&zz&KSccG%-6T?k3yoXPI_>awqO6FSx>-uJKV5~1G@U6n1SU#rN9HqCSbK{irZanvpN3HqfKe{QBubytz|+5 z0zg?K0fCHDAu~HH*XQ#x9*qWl8d{oIU|_K@$Vf1RV<2j}4ht|M-K3ikE(=m_0uWn2 zYA>peFn7&cUxx+Vew?(+ehdH%A~!JC*ucWUp>wMIKydrNI{Gmd%-+1Tmn2eItgX>b zz0)*EASg8jN`@3@)({At%5`zjCZ6_*>O7~%@UV45Qw5gcGciC6k&^ zg&Y6-vSjQ41jReaQ%^H+Yo%ElVdGvH+3OHa6`euCo@F%l8w8*gp)(mMS;~r?{EUz? z%!butH2Tlq{~7weiWBbm9?!CUg6hDb?k2Vhmq=9Aq7_WrIwjx3XRWplmu0@($Fr%P zrxNm$)-VMb;lhq6A7&Xrnyw=Gj9{k;_t5p7zdzTZUs+11@MTVmekAvR@4y@k}@2AAEM za9uUiKBS_+%R&MIB6UF!`!ar@0|QGN_FEasaTK0lWjUP2nQx>DO{5eys!J7RJ$2iR zOhU)C<)2Wnh6>&C+)}MYQNPZX^Slemyj|d_?Rpv zG%1%d7fGPGIm;#RE%}(VJM}GFkm2;VriI1q26P^UVD^Gwq65(HiLiCbbCH?(^Q$T= zkcjzJwc|HW9ar902EkMQHX#6A_tAc z2QS6=a}qIN1ZhNL1z`2ZYMu-z8+ydwO2f{zpKq#f7q1h8%jBbbve}U(niot6&IjpC zyy>YFY`k~Hd~X%va>MuLX+dC#yV(bA4FgVfzuUY2|NftKr#eQoP@~KiEDRxv234a6Nxg=R4aGownNvN73RE?%U*dhMateOcM|@BVdrceN>c!8tN|Gcigr zky%9g^%>K5skF%sqHPT^LRsPseq{?0ZW8E8!p`ZfTHfa? z_ZN@Q)o(xE%*{T`i?i!cG#FxfQ&B1~W=eBew|>0+dwT~z`D9^+ z8ueg9AfO3y!3Th|SZOd6(gb0Umto*=-`deDT%@llpvo)twO1xaOa~sfjC%%3>tA-> zhE{=I6;R7a$bVs*V5$ugY9V;pmw%y@AFsR0ENF%LD`KE+}Hb(A6ozG)~} zRfg0iy~x2#|NF9J@Bjtmdc%`~Prz;F*7f_KbC(JT=28&J9Rx-{&%j~lf6bwp44h|Wx zJ}f2$FHCF)2m^zF0KgG;RG|zDzJO#~X-j=;Q8f5N^DzfLkW`x)Okx8SD~k_Z_J}f8 zXpvVL?2a<$D;RSKt2dgtNl#5*DE}ie-U!y=D3Z~fP+JojB2h6S)L5xIlIBiCzjqN< z(|!6+aNJ(AJna`Nto&CKUDQ3Uks9rBJ^jVcT3yYpLsM(f(9lr&S&1gZ0b3ro3y}|J zvm?aD&znBleNp2_LF6bAlNc~63lIZQf&c_NJ=+pHlEAQ13=ch$EfrfDlH1O;r%I(- z?OoSb)7#di3sM9r0)huHQ~@Co6%i#6dT0ScXi7(=9t4%5pw!Rw9q`EC?LIe z2m}by6rvOnMT&sockw)YV|;(Zz3X8=uQA8md#tthntS5^rm!|Yd#kfRXHEX%8c^36 z&gQP(GK8#F81Oktbf6}TrVvc%k)V+4lVe->5aWWQ+l`vNw9A1xtI4%P38pD0z1H#K zD!sLp{%l??pRm>F<|+Q>R0&~8EifR?^y8{ip}h6W3|1{3if^o*CyKsk8-rJJ z&%1}p1TNM)Y<80Oksda_kZ8dx3nD05%S19~!W_YU*uEfdoF#2Lq7N&0{y}7;L&N>i zXH&lr7dF-2nU_ts$_>9)MJNp-_PW4zU)PKD$s2alvPD5B2^|5z2Y{S)Z91#sB_y9Z zPV6ZgiI6Dgc>My#3M;#zhY{y(VsrA3x?-Eq_roh{Wd5uMR`^M+XxH!`%Kc_%^9$}s zh%-Y3C(o=qbxa~yY3D0d-t{jEg0Adjb2-ad>^UVkkdGF0HJR5P=YmhntUkdqKqLIR zg9TX>CH~8o{o7;$&go_)Q{V8jOEXpId0zhRD z_6e*l!|6vSh3TvTBO#q3!@NDUSyY~5Ia#D%g+Z&keF)AVz*MMZ{${Bp^A=|d#$WW% zsro(B++7;GUZeJ5Q znZ6n2`z+?360iB7R>M?u#8$}KQQ=|A&i3JRQ~Ld!x@e&m(CI>@ZXOs<6QRl` zfLl`H;wg$ihsEj{%=X;iy0a%8eF^O<3>#1TIF~ zZaW_MaVelUFxFlHSHlp-EwKhtDC*xKU6Yn4f= zu`!GloX%LZR>|xg3$!K2Z&Y#!@h{YT%TCMjn>HH{?RXrO>|&jnIr*s6uP9wLPiyzF z=1f(mMsakn9PS34rr#w3+=>P+`&4r&P4`x$Va}McWzi6U0Jwa5TGGNBL=_ zSO2oChhdqN_v@j{Ov{CcQ_M@=5&2HGVzp7rwM;V%+NY+p{!nf^k<}(dCtceN5n6qn zcvEj3xwdiI1g#0BzF!WC;b=J1Wv2sv`eIPmIFF#j<%|e_>ppC@FOqw8zWRO@eCU`X zW+Ld@!S>I|f7V!isP#9CV!cZVD5;miN&u}3AB)W-gv6gDLD`JoT3=XxDPc_ zDNq}~k4TENsc~>zH{`F3?fy648h-uzUb zc7bq7P+-O+B*Xf z;4X0?6T*Jc?Zfc>;}cx=fZdI~l0$0U#n+gfhH2TOtYJdUt@K8HW2ko|bN4z7eMXR- zhk@PQXk^GFvfYZs&W$B3P57RmR=x{d9ok#d{)N!rshrv?{T&o9HRnkDo;Bu;R7=V& ztjbyG*tjCo_w^2L@FTi+-SXk*P@QWPJ^?+5unI%U%N+;_*xCRbTkEsw(=xdaqi;H@}T$B@nmT{H8?e%G^{^yc`7 zH&4THuc33z&MV(bO1CtACB5rW3!Sz5?Vrv$(v_#S^{;VY%Zm55==SmZO zrTH$Cdk_4<@{xk6aiKls_u4J|%iQ-heXohFxAAUYuE!p@zZr$)g5rq_cVOsDY*>7s zo}_?(VtMdE1@bGQoBkA-o_M5VTl0&wO}f-6+v_Wo3kKKJ-^$NyFz+`g(?H|Su*G&D zK7KpfKD*>_fOD5%93`Wi&#AQYbbPfb8a0rwoA7eqSoS*W7hHUkI$i%Wqv*HQqE4gQ zIMpDFEg;5W^=o+O2r`1PxHNFX6^!5uZry5%?>KX8MtT({EDXP!nBTv+><8^+DVieC0nbXig?OR z8gk@4&2j`@=QW5#*vrv;EHS#}p6+6VoB#vbeS-f=KrLC_-fG3d#mYy$^p&xRZXeAO z(;3$edXXbZ+21Ha@Ev%^Oh@U4!jh1skFgeXY(y#(E&wdPLq6R8Me{D8qA9 zj{>KL1lNgFAc8vOg%p01H3`;NH>Y^(387d@UqVzRyGrX{%lbDc^c%=%aWJvJ6|sn5 zbO5=zA7C&T5s|-+6zgr>fdlunLB&=&-d>SZ1bijgy5poT%8<%gS$J+}W{M7q=rFTz zi%ZAo{o_I^mq}Z{9OOTTb(gCk8WI{~`7Iv(C87|`$Kg`KiB%3PSikx?69&_UNs69H zWba{a-zni9PIMy<5VFw3wELGiKKEmdDy%*RGC@IvdD19wZ0k)L1OTccX;2zC9#pIW z4%|qCig*!m+(~ACwEBtNQXy^V7*qfBGoIr&t4H`4Kj&#Bsr3&vk>QM_1Kfqd+rt$# zKtJAGt0U$#yRg2#?@KhTEUg%h16zUCct(WpEcce^B7Ow^Ef$%&iV$V~*!D;U{UO_I jtIm7Syq$|%`oz!G`x>)(J167w`2V9D@qh7Oh`@gUG#T!4 literal 0 HcmV?d00001 diff --git a/packages/pinball_audio/assets/sfx/bumper_b.mp3 b/packages/pinball_audio/assets/sfx/bumper_b.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..e409a018fc8b8dd0346c325d624455e9c5a30efe GIT binary patch literal 36406 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

*&< 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 K|MkD0z<&S@pjj;d literal 0 HcmV?d00001 diff --git a/packages/pinball_audio/assets/sfx/plim.mp3 b/packages/pinball_audio/assets/sfx/plim.mp3 deleted file mode 100644 index a726024da3495b9b720e92612641c30c1a8cf4f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18225 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 bH?DsI>;LMT`oH>k|64Zff1lL 'assets/sfx/bumper_a.mp3'; + String get bumperB => 'assets/sfx/bumper_b.mp3'; String get google => 'assets/sfx/google.mp3'; String get ioPinballVoiceOver => 'assets/sfx/io_pinball_voice_over.mp3'; - String get plim => 'assets/sfx/plim.mp3'; } class Assets { diff --git a/packages/pinball_audio/lib/src/pinball_audio.dart b/packages/pinball_audio/lib/src/pinball_audio.dart index f87b05d1..07257fea 100644 --- a/packages/pinball_audio/lib/src/pinball_audio.dart +++ b/packages/pinball_audio/lib/src/pinball_audio.dart @@ -1,3 +1,5 @@ +import 'dart:math'; + import 'package:audioplayers/audioplayers.dart'; import 'package:flame_audio/audio_pool.dart'; import 'package:flame_audio/flame_audio.dart'; @@ -40,6 +42,7 @@ class PinballAudio { LoopSingleAudio? loopSingleAudio, PreCacheSingleAudio? preCacheSingleAudio, ConfigureAudioCache? configureAudioCache, + Random? seed, }) : _createAudioPool = createAudioPool ?? AudioPool.create, _playSingleAudio = playSingleAudio ?? FlameAudio.audioCache.play, _loopSingleAudio = loopSingleAudio ?? FlameAudio.audioCache.loop, @@ -48,7 +51,8 @@ class PinballAudio { _configureAudioCache = configureAudioCache ?? ((AudioCache a) { a.prefix = ''; - }); + }), + _seed = seed ?? Random(); final CreateAudioPool _createAudioPool; @@ -60,14 +64,24 @@ class PinballAudio { final ConfigureAudioCache _configureAudioCache; - late AudioPool _scorePool; + final Random _seed; + + late AudioPool _bumperAPool; + + late AudioPool _bumperBPool; /// Loads the sounds effects into the memory Future load() async { _configureAudioCache(FlameAudio.audioCache); - _scorePool = await _createAudioPool( - _prefixFile(Assets.sfx.plim), + _bumperAPool = await _createAudioPool( + _prefixFile(Assets.sfx.bumperA), + maxPlayers: 4, + prefix: '', + ); + + _bumperBPool = await _createAudioPool( + _prefixFile(Assets.sfx.bumperB), maxPlayers: 4, prefix: '', ); @@ -79,9 +93,9 @@ class PinballAudio { ]); } - /// Plays the basic score sound - void score() { - _scorePool.start(); + /// Plays a random bumper sfx. + void bumper() { + (_seed.nextBool() ? _bumperAPool : _bumperBPool).start(volume: 0.6); } /// Plays the google word bonus diff --git a/packages/pinball_audio/test/src/pinball_audio_test.dart b/packages/pinball_audio/test/src/pinball_audio_test.dart index 9d6dff98..916d0f34 100644 --- a/packages/pinball_audio/test/src/pinball_audio_test.dart +++ b/packages/pinball_audio/test/src/pinball_audio_test.dart @@ -1,4 +1,6 @@ // ignore_for_file: prefer_const_constructors, one_member_abstracts +import 'dart:math'; + import 'package:audioplayers/audioplayers.dart'; import 'package:flame_audio/audio_pool.dart'; import 'package:flame_audio/flame_audio.dart'; @@ -39,6 +41,8 @@ abstract class _PreCacheSingleAudio { class _MockPreCacheSingleAudio extends Mock implements _PreCacheSingleAudio {} +class _MockRandom extends Mock implements Random {} + void main() { group('PinballAudio', () { late _MockCreateAudioPool createAudioPool; @@ -46,6 +50,7 @@ void main() { late _MockPlaySingleAudio playSingleAudio; late _MockLoopSingleAudio loopSingleAudio; late _PreCacheSingleAudio preCacheSingleAudio; + late Random seed; late PinballAudio audio; setUpAll(() { @@ -74,12 +79,15 @@ void main() { preCacheSingleAudio = _MockPreCacheSingleAudio(); when(() => preCacheSingleAudio.onCall(any())).thenAnswer((_) async {}); + seed = _MockRandom(); + audio = PinballAudio( configureAudioCache: configureAudioCache.onCall, createAudioPool: createAudioPool.onCall, playSingleAudio: playSingleAudio.onCall, loopSingleAudio: loopSingleAudio.onCall, preCacheSingleAudio: preCacheSingleAudio.onCall, + seed: seed, ); }); @@ -88,12 +96,20 @@ void main() { }); group('load', () { - test('creates the score pool', () async { + test('creates the bumpers pools', () async { await audio.load(); verify( () => createAudioPool.onCall( - 'packages/pinball_audio/${Assets.sfx.plim}', + 'packages/pinball_audio/${Assets.sfx.bumperA}', + maxPlayers: 4, + prefix: '', + ), + ).called(1); + + verify( + () => createAudioPool.onCall( + 'packages/pinball_audio/${Assets.sfx.bumperB}', maxPlayers: 4, prefix: '', ), @@ -137,22 +153,52 @@ void main() { }); }); - group('score', () { - test('plays the score sound pool', () async { - final audioPool = _MockAudioPool(); - when(audioPool.start).thenAnswer((_) async => () {}); + group('bumper', () { + late AudioPool bumperAPool; + late AudioPool bumperBPool; + + setUp(() { + bumperAPool = _MockAudioPool(); + when(() => bumperAPool.start(volume: any(named: 'volume'))) + .thenAnswer((_) async => () {}); when( () => createAudioPool.onCall( - any(), + 'packages/pinball_audio/${Assets.sfx.bumperA}', maxPlayers: any(named: 'maxPlayers'), prefix: any(named: 'prefix'), ), - ).thenAnswer((_) async => audioPool); + ).thenAnswer((_) async => bumperAPool); - await audio.load(); - audio.score(); + bumperBPool = _MockAudioPool(); + when(() => bumperBPool.start(volume: any(named: 'volume'))) + .thenAnswer((_) async => () {}); + when( + () => createAudioPool.onCall( + 'packages/pinball_audio/${Assets.sfx.bumperB}', + maxPlayers: any(named: 'maxPlayers'), + prefix: any(named: 'prefix'), + ), + ).thenAnswer((_) async => bumperBPool); + }); + + group('when seed is true', () { + test('plays the bumper A sound pool', () async { + when(seed.nextBool).thenReturn(true); + await audio.load(); + audio.bumper(); + + verify(() => bumperAPool.start(volume: 0.6)).called(1); + }); + }); + + group('when seed is false', () { + test('plays the bumper B sound pool', () async { + when(seed.nextBool).thenReturn(false); + await audio.load(); + audio.bumper(); - verify(audioPool.start).called(1); + verify(() => bumperBPool.start(volume: 0.6)).called(1); + }); }); }); diff --git a/test/game/components/scoring_behavior_test.dart b/test/game/components/scoring_behavior_test.dart index 485183aa..3e0f7fb4 100644 --- a/test/game/components/scoring_behavior_test.dart +++ b/test/game/components/scoring_behavior_test.dart @@ -90,20 +90,6 @@ void main() { }, ); - flameBlocTester.testGameWidget( - 'plays score sound', - setUp: (game, tester) async { - final scoringBehavior = ScoringBehavior(points: Points.oneMillion); - await parent.add(scoringBehavior); - final canvas = ZCanvasComponent(children: [parent]); - await game.ensureAdd(canvas); - - scoringBehavior.beginContact(ball, _MockContact()); - - verify(audio.score).called(1); - }, - ); - flameBlocTester.testGameWidget( "adds a ScoreComponent at Ball's position with points", setUp: (game, tester) async { @@ -130,4 +116,57 @@ void main() { ); }); }); + + group('BumperScoringBehavior', () { + group('beginContact', () { + late GameBloc bloc; + late PinballAudio audio; + late Ball ball; + late BodyComponent parent; + + setUp(() { + audio = _MockPinballAudio(); + ball = _MockBall(); + final ballBody = _MockBody(); + when(() => ball.body).thenReturn(ballBody); + when(() => ballBody.position).thenReturn(Vector2.all(4)); + + parent = _TestBodyComponent(); + }); + + final flameBlocTester = FlameBlocTester( + gameBuilder: () => EmptyPinballTestGame( + audio: audio, + ), + blocBuilder: () { + bloc = _MockGameBloc(); + const state = GameState( + score: 0, + multiplier: 1, + rounds: 3, + bonusHistory: [], + ); + whenListen(bloc, Stream.value(state), initialState: state); + return bloc; + }, + assets: assets, + ); + + flameBlocTester.testGameWidget( + 'plays bumper sound', + setUp: (game, tester) async { + final scoringBehavior = BumperScoringBehavior( + points: Points.oneMillion, + ); + await parent.add(scoringBehavior); + final canvas = ZCanvasComponent(children: [parent]); + await game.ensureAdd(canvas); + + scoringBehavior.beginContact(ball, _MockContact()); + + verify(audio.bumper).called(1); + }, + ); + }); + }); }