From 38c69cc7ccd5367df56b83316f75194d86a13ba2 Mon Sep 17 00:00:00 2001 From: AmirrezaChegini Date: Tue, 30 Sep 2025 12:08:06 +0330 Subject: [PATCH] fix: unFinished, finished, current level ui --- assets/images/current_level.png | Bin 0 -> 2162 bytes assets/images/current_mission.svg | 22 ----- assets/images/done_rounded.svg | 3 + assets/images/finished_level.png | Bin 0 -> 2504 bytes assets/images/finished_mission.svg | 76 ------------------ assets/images/level.png | Bin 0 -> 1868 bytes assets/images/mission.svg | 22 ----- lib/common_ui/resources/my_assets.dart | 7 +- .../presentation/ui/widgets/level_widget.dart | 42 +++++++++- 9 files changed, 45 insertions(+), 127 deletions(-) create mode 100644 assets/images/current_level.png delete mode 100644 assets/images/current_mission.svg create mode 100644 assets/images/done_rounded.svg create mode 100644 assets/images/finished_level.png delete mode 100644 assets/images/finished_mission.svg create mode 100644 assets/images/level.png delete mode 100644 assets/images/mission.svg diff --git a/assets/images/current_level.png b/assets/images/current_level.png new file mode 100644 index 0000000000000000000000000000000000000000..ac3cbcd92c0e63226dea8e3fe60e7aeacc9e1a5c GIT binary patch literal 2162 zcmV-&2#xoNP)0ua_fsaiD2eW4YN)%MyPTxC+QLBi>66M(Hrn1G#7>T3xZ1==WtIe|crSJemV zuJd2@A!lQtae8zwglZp@VFYf0t3x&VcfRzH+I4m=kF^NvAe^2Uf$;Jqgs>ZKBzx}* z0G2xx8F1w^Kn~!Y1K5?v8bF_fUsCLbmuG3H0Y6*-7^3B)WOsYRQ5I7fc;9#8!O_?9 zSaY>G?=o1X0xj7=fLCa|NbNGUmSHX+dyEs2K!n;QgEU9%(fk0W6$Hdv;zr{+dVhgh zCwNFbbM9Bz2xy!h+X*2u;E8CW6X?d_fRJx8qBZ~oKLclggVgS&iOoVto7yk*SjIUB zHdB1h)w+odvH_3oC&1GY;E)72iM181FMgE(WQR=})Ty1L@we0tlMz+(jx+25+Ljv? z>0Ew0Q!I1^JoYvL-UmppJJi~JhrSU2{nsVS%Q3x!23(ESX!55v8@Nk7oi2kZ(Rgsn zOVmw9VZaH-p5?g19txwe2n7W(|9T8y;;`95ZH(H9cGocR#6<^2yM2T_I}(M2RGvi= zY#!ywlLkiKr*hiCPt{Y4&r3Fc-`B!vXcjbJrVz7*Iv^_FFuC6Lm?N7%uMj*`yOU+m zvElxS2^en9!q$#2te1DP!lPfx3LTycO&?X94&7yn?zD8CRa!boM3(X^n<1PmWbTOh=$n>f#QHUhh^NAboN*3V1-HHaa`I3K_ zL@_2jl&2U}Z-Bj0AcVBR?D6HoWX7ox#T%jp-hyn(ic9-0A=dSIq1P>B8uWj@c-jNq zY-1^2q0PiKdYmrldqJiG6@yO#lpy5GUdDCYs+C4Mejom zBA`cL@Hj&aa7wzka%pR7tKkfFt1>*wORJr#jeaGLB$G1{8blPKi_Te&G65_7DtZK3 zIDtZT0(-SV!Wd4}_;#s0LHuE94HrP)>SNFsh%wfR zGy`o2VrVrhDUCmzSZEyweP%lvOsmv0;&hI6Buf~Y+V1Kfc*e%E5gc~oeH3+@9iSkA z#3=jyO!Fl75_D;$71m>Y@gOVl(fQmn3j8~*j&V$%$jWY)IS~L2la?FA&M}G(99{b@ z33_OyiS-y^9IvUXuk(sQr4pWv3$WX!{@4*x>X4}^7OZVHI73%4SWb%z4d}jbnp$1Yl|lX1wO7A z3Y}$oTU0`~{`~b{O|BfCr=x@Ajn9{k?LAO?ZKWAjeN{?6d83ts4_2j*4*@+6KibjO zGjoP1S9mb4aXJ8vQ6C?v^TEQsmwAy&oWQPwp*;f<5q z;K32VyR2@7;qsx`#z(Jwa&Zd8_b1Ey9OTd!FTZ03->>GGu(bt1;)pR2FEuKj#fr1 z!5yUl%bY~|-tFC(P*ehNl?a=Z9c}tv+OD6d77xDjTPQ5+_Q>L8d z(GS$lcLROJzBr#u z5+B=#shyFNg&qs8H*mhu9RhKvSSsW!yk5Z1Qu`6~ck&eFfo8haz_}hDg&u!L>jyN` zwE)iX%V1~n7!|CK_>RIq@RUUxG_4F9Cyw9m!IZQ-S}*84;@jeo>8(L!^Vu4lB;LiJ oq4y8U9$jtF{ZP`F+;B+JeF8jg#Z8m literal 0 HcmV?d00001 diff --git a/assets/images/current_mission.svg b/assets/images/current_mission.svg deleted file mode 100644 index 12ddce8..0000000 --- a/assets/images/current_mission.svg +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/assets/images/done_rounded.svg b/assets/images/done_rounded.svg new file mode 100644 index 0000000..941246e --- /dev/null +++ b/assets/images/done_rounded.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/images/finished_level.png b/assets/images/finished_level.png new file mode 100644 index 0000000000000000000000000000000000000000..89cb246958c1b6363b4a0deb1f8f732ce90dcfe3 GIT binary patch literal 2504 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 Sy?rMD0000 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/assets/images/level.png b/assets/images/level.png new file mode 100644 index 0000000000000000000000000000000000000000..f6a88ec681f3b251e164fec76dd78e0882d717b5 GIT binary patch literal 1868 zcmV-S2ebHzP)gvi=S6Bbo z($bOzUomWV-BqD<=U?!HPE`;`=DTU%SjPSK%5 zhpxjIad=}}nytIJxhbuC;=~DQF?tp>2~jB}lgSk1Q?osa*AX!Y)+KN^sF?!blP6D# zL?R&;7Z=6)`nm+YXU`r{TU#q@QZC!56yy)xegBx|8J9qBZwn4LX;R<*L;3G$l zNdE*_t3b_nb?}%ZYLvZu_sYU61zD&^Mn=Tg*cjSv7cN{FEE_ZdK2H|Ja;0F&`uciV z*cHr;7MFNZFu=Zj`$S`7qu|X9DijK^dQkzNwaKtLBe}zM0@nq=ut++c7W?<__Y?*J zMt>CXSXg&qVL`lo`&LX%O?goSdxdmjg|7$6a4dkcG|L{$K9x#IYp^1H>34&mi#DWm zDOh}IX{nv8{gVg-4IicfJ#}?;8Mf?pz*agrby$gFu{cWxJZ8Fy&piliPjho~rlFxh z4r0(d1vrlTfZ#eSD=V-#!eE!#?}2{u+tn)gEmEKe0|cl7l1WIfOdprb!eOiTnG*DN>+P+a~vnRb>1mk-g05V-vITm1dAZi$_aS3f!AZrbCtM?(4ajL7gp=WMxPDU{$UmB1m zFzf?OS=Fkr5QiQTD3zHfCKGQ~4&D>!33^=9LD#Y%n*}41dM99_t_X3JIQfQ7Z{EB?xbs=M5kIs$$8FbHwqw{d zrbUnEN=lBo(L@BfIv;&{!9ApvVE?w#v9UaZtfa(ez%g3+A6W4`&6EP<`G&Cd=B^`8K zkbut4&L3XBe0kqErC4I5U$ezT8DzQ}B}s+e-d?P_=N?GE>ZyDZBqX2D7c!ZQpgWPz zaa|?0;xbEjVt{a?_)J0?`smT4TQ_gsyidTf0Y|AUu)-E9Uq%VJeEITMZEbDe(8pzx z?%Z6JZhHBGvg&)|+>lQ!9*2FQvcnP`BKZdo9&`^344A>7pUS_UQld|(d?q3&o6WYK zJ$v>l-SZv8Z7QzM0G=a4z`+wrNNE9<_EGNc-McyLrvTQxP=2kOAQo^Yx?E45I(4e` z=+UD|x(ZIy1kyB_G$r{-x>!lmqz+33@6u=KQuyA)CmRadbj4eE{rYvD?lT5Lz%q4n z!(6wrfJf2k)29y~KYqNKCQ(n9=f`MOl2o_Cvd^DC&(XE=?=eNe!g&z@8nmOpcZd)@ z{@@4OKRHvXZW12{{YB+Z{YB87_Db>x}xN??V8G z&ORzDK@4&Jo%}z6W5eO&HS{JZ?q8|^zOMMWuKd5{ErQJ7sQeR$xvYG^AS5D4wrW(( zC87EnV#qCVxes;}C=A2_{rstJ<(I056syQ~U>5qV$Wi!hz5L0000 - - - - - - - - - - - - - - - - - - - - - diff --git a/lib/common_ui/resources/my_assets.dart b/lib/common_ui/resources/my_assets.dart index fd5882e..862e6a3 100644 --- a/lib/common_ui/resources/my_assets.dart +++ b/lib/common_ui/resources/my_assets.dart @@ -29,10 +29,11 @@ class MyAssets { static const String wrong = 'assets/images/wrong.svg'; static const String handPoint = 'assets/images/hand_point.svg'; static const String mapBackground = 'assets/images/map_background.png'; - static const String mission = 'assets/images/mission.svg'; - static const String finishedMission = 'assets/images/finished_mission.svg'; - static const String currentMission = 'assets/images/current_mission.svg'; + static const String level = 'assets/images/level.png'; + static const String finishedLevel = 'assets/images/finished_level.png'; + static const String currentLevel = 'assets/images/current_level.png'; static const String location = 'assets/images/location.svg'; static const String play = 'assets/images/play.svg'; static const String homeButton = 'assets/images/home_button.png'; + static const String doneRounded = 'assets/images/done_rounded.svg'; } \ No newline at end of file diff --git a/lib/features/level/presentation/ui/widgets/level_widget.dart b/lib/features/level/presentation/ui/widgets/level_widget.dart index 489bb72..821bd75 100644 --- a/lib/features/level/presentation/ui/widgets/level_widget.dart +++ b/lib/features/level/presentation/ui/widgets/level_widget.dart @@ -10,9 +10,9 @@ enum LevelType { current; static Map get image => { - LevelType.unFinished: MyAssets.mission, - LevelType.finished: MyAssets.finishedMission, - LevelType.current: MyAssets.currentMission, + LevelType.unFinished: MyAssets.level, + LevelType.finished: MyAssets.finishedLevel, + LevelType.current: MyAssets.currentLevel, }; } @@ -26,12 +26,46 @@ class LevelWidget extends StatelessWidget { Widget build(BuildContext context) { return Stack( alignment: Alignment.topCenter, + clipBehavior: Clip.none, children: [ - MyImage(image: LevelType.image[type] ?? MyAssets.mission, size: 44), + MyImage(image: LevelType.image[type] ?? MyAssets.level, size: 46), Text( '$index', style: MyTextStyle.normal.copyWith(color: context.primaryColor), ), + if(type == LevelType.current) + Positioned( + top: -20, + child: MyImage( + image: MyAssets.location, + size: 26, + ), + ), + if(type == LevelType.finished) + Positioned( + bottom: 0, + child: Container( + height: 17, + width: 17, + padding: EdgeInsets.all(3), + decoration: BoxDecoration( + shape: BoxShape.circle, + border: Border.all( + width: 1, + color: Color(0XFF3CFF3C), + ), + gradient: LinearGradient( + begin: Alignment.topCenter, + end: Alignment.bottomCenter, + colors: [ + Color(0XFF48D336), + Color(0XFF2D7C23), + ], + ), + ), + child: MyImage(image: MyAssets.doneRounded), + ), + ), ], ); }