diff --git a/composeApp/src/commonMain/composeResources/files/maimai/playlog/3rd.png b/composeApp/src/commonMain/composeResources/files/maimai/playlog/3rd.png new file mode 100644 index 0000000000000000000000000000000000000000..7a1adba275a3a06d9e0b75ef96d4ee59247813bd GIT binary patch literal 5403 zcmeAS@N?(olHy`uVBq!ia0y~yU~p$(U@+uhV_;zDIKAaC0|S?Hrn7T^r?ay{K~a8M zW=<*tL&dGR!Q~N?zl+)3|DMVp=5*u3#_2hY3`)vtI8F#eE)tl;kk}$1l5!D?UWARS@&ho9bRqx-v{eAuSp67F(|2bEAp1(m* zNNwV?MOh4%L9I4cH{|>MJ&v5*+rT91@qk4^;MwUz>8wW?7(OspR@9Yju>ZrjKA(Y! zq2Q{XiqP?g|C@IOsD(2qOk{YVB=nq{aY7Ko3B8aLA`B-a7&ZiNPT^vh!oZMIS>vR{ zu!@)A%@? zI6d|3bni>XB0HvDkShQ5;lU%tM~8AYIwgv03Z!v9QJOP-wz9Ctb7r4&JPZs{KQA8q zXJJ3#`LibvpQSy|dH?0;qJP;R@|ElqKi>bhr-zA!LBQ|)`&;o(pI&1wIL^4Cbbt2B zXog#13>o)-#v0$|ToA=|q3UOMrNtiyxp@l%PT0uGaB*|LRZUvB*Whut-GAeU`4775 zzWs5K`**wQ14H2~hnZ^+EN=c=n3z|#E~xMMX%;8LyzkGI{~d3w|J$c|@sY{K7#-2B zj}e_a0+f7@SMCg&=%RRX>La0-^+q4%r~T!eT+Yj|rp^C=-!}HGr*jU}y<=qR=8L#g z#^6x*S+_@udm@8Cx`|QccLs*Z`+xR3XfraLoxbET1H+yd5-}^Li2EGlU|?`r(5SV+ zk)7wD$eIIua}LVxIUvrI$mZg}qjJDTz=`cigACU~iD{0KAqT8(ux#DHEVV#z)cidG$hNqskz&T)v(>|;?%^e~y!utecy zhe)8((Gx{Wm{vMvO^o$W{-j$ZV%Zzx@N2^D6ADIMf4cU#8%}B56v%vqsnlWT3VErn zV+)EemYDFzHcVTTeNk$QoNdFlMawUGzbGwXsO{=YZn$X3m)3JLF{Y>8HK8*?O6|B< z^3w>@uzu5I*$DG8QRxHo65n&EFm*Qwzu|~$5jd37G+}~!ginO?3e`8tTZDFTgmX5x z7#>nrn!Lh)i)xk7&m$E{RvRZoxUErprzod5Pc=@RPdI+EhYH`xNl*N^6jdh}d2)MZ zd))TWT@t*+?vg;}93QpU6LL@9d&04)VU5D{iQ6aePw=1g`{dy#+eNI7c0BUoT%;1T zWQvfNX{!BGmZkHJoMtXq6?k^#yek~5I;`eLdFC!C3(ya4Uny)-I!pEJY%%B4OLP}s zy)Y{?J@b2p{>zeGoOhe$T&G`{ekuC}`^)Dqo4=Iv@V4mRv5eT~dFh z&ob7_(`TLtF}Q9dJu`g<|BU?52(52gHKG$w2~D+{8aB0V>ho10p~a#0S1VU>hpZ0e zUmX`#yUZ{5!mM+t;_6c?_UX`{cZDQKoXN6}O z`HpRT@WJxt9ItbV=XlRm>oV)w>u$W3wKi>S-CFZoRk!xtN_t!LR_yKTTklH?<~q#P znfui$*XnyI=Pt8dfxB9F-7Y=<%I&lm$Ur&AIdwKVw``6qri@%D$dVlTxMR{`r z6ArTpk~xMJ$sf*4NPdw$BXh^a4=oQ@2%gT^HStKs;)|Y()pw}9Yfpb{S|M(iwkBUD zX^qLf)H~TWiAkA8x0f7Qa`eeQ&9hUoXQl1BxaD%mnKLJJ?yR}7=H#0`%d2y;=OymD zx##wu-qxkAbB=m-n{^+bc57PAY1V1J)4s2n5oQ-w8TK{o`Wnw`F|T!A=UxlX36Kt- z%`@9-_UUaa*3Mpgq-=KXeUV2Z{hF6FzXs>sGJNyr4cD7lZ`j^ieoOqO`Yrd{dD$~E zLbBJaORQ^(N=na^X69^Wd6tGRl$I`MGwM#>jW&OadjN&089@tt&?SrAecv5?oSP@?GcJnkSLJ)A#m$ z>|fcl)B1MSwxY81HCZ`9ImvHk?`YVuYDZ&5`w!QT(}hZeRXE>vJ~?vZh;8TNVy5Rg zvyA6FnH4gvBzfJ_JBxOTKYMxZ^t^JLNYls(H5RQigr;w@f7-0z6reBR|8#ktudMK= zmf5ZTuKO1CE(+YZeTSFLq-S%(rhc=yYhCO7E2GWdt@M~Nr+<)kjv93w)>}PYft8VQu!?Rl=S5GQ{SH`|1AD|TQsND z=i=fmLF)qe#C-HuXjeo_L|5$a*y|B>#rS^OzgIt%xtqjl_Dx35pZbEDFD+f_tlboDGIiyY zlc)36eTmwcESfkqCG>sP^sCWf^;+Un?E~*x>5sinrQ>tG?v*U8%KF-OcFWmQXPHeCP2WbJ z*|z5Pr-f#Vzg5kxk3AjsckSx!`);b;y0-srdG%+$W?50|d+(>b*|Sx;;`qO|x9IX*q8et%g__2YmS3(pe)99Z=l!uC_7r?k`kr)Kb-VXk+jX|?bp?MPdaRGm zf1UdM^xJTobtPYXUt3>%f4Tlw)`6?V*MD5si=AJ&_x-Uq(%bXY?#k>?-SzcH*|)di zzl>e98A6{}l z<9=1yO}V#!uDrZ7uhia8Dd#3XT)t_!@cC19VgD;%7q5PP|L>#U-sdC!-1xx#v-|x1 zb(JeW7rkG-a=q1Y<>T^u&Q;oeT=r+}x!bkxcf8+q|M*_{nHql_{snx#_$&GN@(cdo z?Vi{C`=kH8<@4_bOI1Mz1_sFz*NBqf{Irtt#G+IN$CUh}R0Yr6#Prml)Wnp^!jq{s z3=GUInIRD+5xzcF$@#f@i6Aw46}bfrAYfx(QIMFNom!%hl$xHIXRGvn_kJaX%oJOt za8q9c-vZ~}1OnC3`ysn+mIn+=ATHl0=1y+?>2(s|s5su(?)w z#a19;eI*63l9Fs&C5WRUd;=7m^NUgyO!drklMPKw70fO549$#9EG=~uj0_Ad^bIWZ z4UKgT&8$oetc;8lpg_q^!KNrB%__*n4Qf|WN}8=wMoCG5mA-y?dAVM>v0i>ry1t>M zrKP@sk-m|UZc$2_ZgFK^Nn(X=Ua>OF1ees}l?(&rI^|B_eU1FZ^&)h#7mOlMc-b#fW zpRgj6t!zhZ;&=D^thhIkkzc@3x=Fioy0~zbY|Q-m8$$ddDvP4d?f+FN`N?XYrDO6O zCALlfe+i!Cf4YoqtDb&ohfKu5GN+ZDX7f)sW?b2_w{Y^MFNS44o#~5?&(f}(KHbXT zi2J5$4bz)^nnyKX9F{0Lu_Y|yF7NZ#Z67$~<>ca?HXPfNvAKUcr@zLNA2xF5g^as5 zXurB(zbiQIz0VIv>Dc`8jIP_FMbkd|obr7rxFqnQI*TA*V;%Q06_fn=cjE*qzlr8d zcKW(;n%B1d4?7l?$+Yv_TqNkb>4|TR&N=DI{@QH? z{_lF;w76CNlgxQO=Xr_vPVIMcDpmF^*(F>3)Fo@~9(ni5szBiL!L#RgT=zB-|7^DE z!1wCAUk_z|_f7nF#go%|_h|-8&fO^oWWrOYZ|YQ-6j|!FC?~97)k8NAuB(@>+*kXg zoV?|j&ddKTcXD28Fj@Nco_)LQ#Ku=^7WTG_zZ3mAd&$Iz90T?zA?>>tZCw5J>`MM~ zbKjnF=w>QDS-3tyx+v_`&)H9mwNu)@_O8v|wQI3XeOaHTu91?4{W;ek?h^00Wz>8G zo^`F+wQhZ4NVdK1J^NeJr<4XSaWM$+k`>uu{d|hG)47E&Z_do_5_`m4vCB@Vuo3t z)^Hg;VUWI`9Jta*T=&F^12S`8xTl19Eb)0M_r`YNt$nw(MOV2gNs5JBtPApzdh6l( zV##a1n_mnW-^WP!ZFuv?%=stZoaM4bE~<^mPk8wI*L)TRZ?5etC+*>J zelp`LYrz_iuge3pE;!FBU%K6~Ja6?T?-MQkQQxfh-8k@IiOK&bM|{j&?d2VR97zek ztdgK*puJew@Rjxi@q;~A1KIz%l`L75BgL`F$In9O>yux?+~->xot&RrcGxWnc;mv9 zsV;L{Fh6^RaeMgMU7C5*1ukTD%=^iCa_8NvmyZ?i%3Jo!)oiO{{^x>qTOM5hy3Nmc zZ~1$^|JSar&HX<+w=L@9M%T`@-z@Tr?ylho&6SOf>3`q$>%O*2_$@Q<=Kfi^6N^_F zUpn0@Vv$sEY0ri0jX!tGyv$CI+qv-Ln+d|NdR+9)x88g9&d6z{uvClPmP4CT_dCyO zR$rlX@aML>tM+`V3SOa+|I9?saVo$36r}@&O*gCD-lsB6tb8!TSw;E@bJ16Bz90NM z`8Iv)`X=w29hOtD;{4~Y{uM6gt_kfsIp21!sQrZe7e5}xJegFouZhLmciN^Ksv>~` zp?ALVzVf=8x5~k>tG4{tq0L>-9Ci9eIZs*2b`)7$HJ-GRMs~o%b#{6vmFMPWzp0Z_U?L50Ija6k5)5|*VW@T>oO`UVN z&Yuhl+H)nn%|&S6&a2g1{CCN}U0}MnZ@a0EVtSO=SHTItI^Hk0H`Ca9c#-Sh$MZH^ zsShbSvZU#x?Re`aJI@wp_mdKI;Vst078$->;M1& literal 0 HcmV?d00001 diff --git a/composeApp/src/commonMain/composeResources/files/maimai/playlog/4th.png b/composeApp/src/commonMain/composeResources/files/maimai/playlog/4th.png new file mode 100644 index 0000000000000000000000000000000000000000..12c07af5f6b0cd47bb2af909a11da73b4e3460b6 GIT binary patch literal 4968 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 literal 0 HcmV?d00001 diff --git a/composeApp/src/commonMain/kotlin/com/derakkuma/ui/components/SongRow.kt b/composeApp/src/commonMain/kotlin/com/derakkuma/ui/components/SongRow.kt index a7acd48..ed7655d 100644 --- a/composeApp/src/commonMain/kotlin/com/derakkuma/ui/components/SongRow.kt +++ b/composeApp/src/commonMain/kotlin/com/derakkuma/ui/components/SongRow.kt @@ -142,6 +142,8 @@ fun SongRow( val placingImg = when (placing) { "1st" -> BundledImage.Playlog1st "2nd" -> BundledImage.Playlog2nd + "3rd" -> BundledImage.Playlog3rd + "4th" -> BundledImage.Playlog4th else -> null } if (placingImg != null) { diff --git a/composeApp/src/commonMain/kotlin/com/derakkuma/ui/images/MaimaiImages.kt b/composeApp/src/commonMain/kotlin/com/derakkuma/ui/images/MaimaiImages.kt index 06e4e89..0689d84 100644 --- a/composeApp/src/commonMain/kotlin/com/derakkuma/ui/images/MaimaiImages.kt +++ b/composeApp/src/commonMain/kotlin/com/derakkuma/ui/images/MaimaiImages.kt @@ -191,6 +191,8 @@ enum class BundledImage(val path: String) { PlaylogVs("playlog/vs.png"), Playlog1st("playlog/1st.png"), Playlog2nd("playlog/2nd.png"), + Playlog3rd("playlog/3rd.png"), + Playlog4th("playlog/4th.png"), StampComplete("stampcard/complete.png"), ; diff --git a/composeApp/src/commonMain/kotlin/com/derakkuma/ui/tabs/PlayDetailTab.kt b/composeApp/src/commonMain/kotlin/com/derakkuma/ui/tabs/PlayDetailTab.kt index 2eab6f3..f1ac7b8 100644 --- a/composeApp/src/commonMain/kotlin/com/derakkuma/ui/tabs/PlayDetailTab.kt +++ b/composeApp/src/commonMain/kotlin/com/derakkuma/ui/tabs/PlayDetailTab.kt @@ -196,6 +196,8 @@ fun PlayDetailTab(client: MaimaiClient, cookie: String, idx: String, onMusicDeta private fun placingImage(rank: Int): BundledImage? = when (rank) { 1 -> BundledImage.Playlog1st 2 -> BundledImage.Playlog2nd + 3 -> BundledImage.Playlog3rd + 4 -> BundledImage.Playlog4th else -> null }