|
10 | 10 | <!--title--> |
11 | 11 | <div class="song-info-title text-truncate fw-bold"> |
12 | 12 | <span> |
13 | | - {{playLog.songInfo != null ? playLog.songInfo.name : 'MusicID:' + playLog.musicId}} |
| 13 | + {{ playLog.songInfo != null ? playLog.songInfo.name : 'MusicID:' + playLog.musicId }} |
14 | 14 | </span> |
15 | 15 | </div> |
16 | 16 | <!--artist--> |
17 | 17 | <div class="song-info-artist text-truncate "> |
18 | 18 | <span> |
19 | | - {{playLog.songInfo != null ? playLog.songInfo.artistName : ('Ongeki.RecentPage.UnknownArtist' | translate)}} |
| 19 | + {{ playLog.songInfo != null ? playLog.songInfo.artistName : ('Ongeki.RecentPage.UnknownArtist' | translate) }} |
20 | 20 | </span> |
21 | 21 | </div> |
22 | 22 | <!--difficulty--> |
23 | 23 | <div [ngSwitch]="difficulty[playLog.level]"> |
24 | 24 | <span *ngSwitchCase="'Basic'" |
25 | 25 | class="difficulty difficulty-basic badge rounded-pill"> |
26 | 26 | Basic |
27 | | - {{(playLog.songInfo?.level0 | toLevelDecimal)??'None'}} |
| 27 | + {{ (playLog.songInfo?.level0 | toLevelDecimal) ?? 'None' }} |
28 | 28 | </span> |
29 | 29 | <span *ngSwitchCase="'Advanced'" |
30 | 30 | class="difficulty difficulty-advanced badge rounded-pill"> |
31 | 31 | Advanced |
32 | | - {{(playLog.songInfo?.level1 | toLevelDecimal)??'None'}} |
| 32 | + {{ (playLog.songInfo?.level1 | toLevelDecimal) ?? 'None' }} |
33 | 33 | </span> |
34 | 34 | <span *ngSwitchCase="'Expert'" |
35 | 35 | class="difficulty difficulty-expert badge rounded-pill"> |
36 | 36 | Expert |
37 | | - {{(playLog.songInfo?.level2 | toLevelDecimal)??'None'}} |
| 37 | + {{ (playLog.songInfo?.level2 | toLevelDecimal) ?? 'None' }} |
38 | 38 | </span> |
39 | 39 | <span *ngSwitchCase="'Master'" |
40 | 40 | class="difficulty difficulty-master badge rounded-pill"> |
41 | 41 | Master |
42 | | - {{(playLog.songInfo?.level3 | toLevelDecimal)??'None'}} |
| 42 | + {{ (playLog.songInfo?.level3 | toLevelDecimal) ?? 'None' }} |
43 | 43 | </span> |
44 | 44 | <span *ngSwitchCase="'Lunatic'" |
45 | 45 | class="difficulty difficulty-lunatic badge rounded-pill"> |
46 | 46 | Lunatic |
47 | | - {{(playLog.songInfo?.level4 | toLevelDecimal)??'None'}} |
| 47 | + {{ (playLog.songInfo?.level4 | toLevelDecimal) ?? 'None' }} |
48 | 48 | </span> |
49 | 49 | </div> |
50 | 50 | </div> |
|
59 | 59 | <span>BATTLE SCORE</span> |
60 | 60 | </div> |
61 | 61 | <div class="score" [class.new-record]="playLog.isBattleNewRecord"> |
62 | | - <span class="score-font-large">{{Math.floor(playLog.battleScore / 10000)}}</span> |
63 | | - <span class="score-font-small">{{playLog.battleScore % 10000|formatNumber:4}}</span> |
| 62 | + <span class="score-font-large">{{ Math.floor(playLog.battleScore / 10000) }}</span> |
| 63 | + <span class="score-font-small">{{ playLog.battleScore % 10000|formatNumber:4 }}</span> |
64 | 64 | </div> |
65 | 65 | <!--over damage--> |
66 | 66 | <div class="item-header battle-item-header"> |
67 | 67 | <span>OVER DAMAGE</span> |
68 | 68 | </div> |
69 | 69 | <div class="score" [class.new-record]="playLog.isOverDamageNewRecord"> |
70 | | - <span class="score-font-large">{{Math.floor(playLog.overDamage / 100)}}</span> |
71 | | - <span class="score-font-small">.{{playLog.overDamage % 100|formatNumber:2}}%</span> |
| 70 | + <span class="score-font-large">{{ Math.floor(playLog.overDamage / 100) }}</span> |
| 71 | + <span class="score-font-small">.{{ playLog.overDamage % 100|formatNumber:2 }}%</span> |
72 | 72 | </div> |
73 | 73 | </div> |
74 | 74 | <!--score stamp--> |
|
82 | 82 | <span>TECHNICAL SCORE</span> |
83 | 83 | </div> |
84 | 84 | <div class="score" [class.new-record]="playLog.isTechNewRecord"> |
85 | | - <span class="score-font-large">{{Math.floor(playLog.techScore / 10000)}}</span> |
86 | | - <span class="score-font-small">{{playLog.techScore % 10000|formatNumber:4}}</span> |
87 | | - </div> |
88 | | - <!--rating--> |
89 | | - <div class="item-header technical-item-header"> |
90 | | - <span>RATING</span> |
91 | | - </div> |
92 | | - <div class="score score-font-large" [ngSwitch]="difficulty[playLog.level]"> |
93 | | - <span |
94 | | - *ngSwitchCase="'Basic'">{{((playLog.songInfo?.level0 | toLevelDecimal) | toTechRating : playLog.techScore)??'None'}}</span> |
95 | | - <span |
96 | | - *ngSwitchCase="'Advanced'">{{((playLog.songInfo?.level1 | toLevelDecimal) | toTechRating : playLog.techScore)??'None'}}</span> |
97 | | - <span |
98 | | - *ngSwitchCase="'Expert'">{{((playLog.songInfo?.level2 | toLevelDecimal) | toTechRating : playLog.techScore)??'None'}}</span> |
99 | | - <span |
100 | | - *ngSwitchCase="'Master'">{{((playLog.songInfo?.level3 | toLevelDecimal) | toTechRating : playLog.techScore)??'None'}}</span> |
101 | | - <span |
102 | | - *ngSwitchCase="'Lunatic'">{{((playLog.songInfo?.level4 | toLevelDecimal) | toTechRating : playLog.techScore)??'None'}}</span> |
| 85 | + <span class="score-font-large">{{ Math.floor(playLog.techScore / 10000) }}</span> |
| 86 | + <span class="score-font-small">{{ playLog.techScore % 10000|formatNumber:4 }}</span> |
103 | 87 | </div> |
| 88 | + <!--platinum--> |
| 89 | + <ng-container> |
| 90 | + <div class="item-header technical-item-header"> |
| 91 | + <span>PLATINUM</span> |
| 92 | + </div> |
| 93 | + <div class="score"> |
| 94 | + <div class="platinum-star-container"> |
| 95 | + <img *ngFor="let _ of getArrayFromNumber(playLog.platinumScoreStar)" |
| 96 | + class="platinum-star" src="{{host}}assets/ongeki/gameUi/UI_Card_star_00.webp"> |
| 97 | + <img *ngFor="let _ of getArrayFromNumber(5 - playLog.platinumScoreStar)" |
| 98 | + class="platinum-star" src="{{host}}assets/ongeki/gameUi/UI_Card_star_01.webp"> |
| 99 | + </div> |
| 100 | + <div class="score-font-large platinum-score">{{ playLog.platinumScore }}</div> |
| 101 | + </div> |
| 102 | + </ng-container> |
104 | 103 | </div> |
105 | 104 | <!--score rank--> |
106 | 105 | <div class="col-6 col-sm-3 col-md-6 col-lg-3 align-items-center d-flex" style="max-width: 150px"> |
|
165 | 164 | </div> |
166 | 165 | <div class="card-footer fw-bold"> |
167 | 166 | <div class="float-start"> |
168 | | - <a type="button" class="text-primary" (click)="open(judgeContent)">{{'Ongeki.RecentPage.Details' | translate}}</a> |
| 167 | + <a type="button" class="text-primary" |
| 168 | + (click)="open(judgeContent)">{{ 'Ongeki.RecentPage.Details' | translate }}</a> |
169 | 169 | </div> |
170 | 170 | <div class="float-start ms-3"> |
171 | | - <a type="button" class="text-primary" (click)="showDetail(playLog.songInfo)">{{'Ongeki.RecentPage.Ranking' | translate}}</a> |
| 171 | + <a type="button" class="text-primary" |
| 172 | + (click)="showDetail(playLog.songInfo)">{{ 'Ongeki.RecentPage.Ranking' | translate }}</a> |
172 | 173 | </div> |
173 | 174 | <div class="float-end"> |
174 | | - <span>{{(playLog.userPlayDate | toDate).toLocaleString()}}</span> |
| 175 | + <span>{{ (playLog.userPlayDate | toDate).toLocaleString() }}</span> |
175 | 176 | </div> |
176 | 177 | </div> |
177 | 178 | </div> |
178 | 179 |
|
179 | 180 | <ng-template #judgeContent let-modal> |
180 | | - <div class="modal-header"> |
181 | | - <h4 class="modal-title">{{'Ongeki.RecentPage.Details' | translate}}</h4> |
182 | | - <button type="button" class="btn-close shadow-none" aria-label="Close" (click)="modal.dismiss()"></button> |
183 | | - </div> |
184 | | - <div class="modal-body"> |
185 | | - <table class="judge-table table table-borderless table-sm table-striped table-dark align-middle"> |
186 | | - <tbody> |
187 | | - <tr> |
188 | | - <td class="combo">COMBO</td> |
189 | | - <td class="combo">{{playLog.maxCombo}}</td> |
190 | | - </tr> |
191 | | - <tr> |
192 | | - <td class="critical-break">C.BREAK</td> |
193 | | - <td class="critical-break">{{playLog.judgeCriticalBreak}}</td> |
194 | | - </tr> |
195 | | - <tr> |
196 | | - <td class="break">BREAK</td> |
197 | | - <td class="break">{{playLog.judgeBreak}}</td> |
198 | | - </tr> |
199 | | - <tr> |
200 | | - <td class="hit">HIT</td> |
201 | | - <td class="hit">{{playLog.judgeHit}}</td> |
202 | | - </tr> |
203 | | - <tr> |
204 | | - <td class="miss">MISS</td> |
205 | | - <td class="miss">{{playLog.judgeMiss}}</td> |
206 | | - </tr> |
207 | | - <tr> |
208 | | - <td class="bell">BELL</td> |
209 | | - <td class="bell">{{playLog.bellCount}}/{{playLog.totalBellCount}}</td> |
210 | | - </tr> |
211 | | - <tr> |
212 | | - <td class="damage">DAMAGE</td> |
213 | | - <td class="damage">{{playLog.damageCount}}</td> |
214 | | - </tr> |
215 | | - <tr> |
216 | | - <td>TAP</td> |
217 | | - <td>{{playLog.rateTap}}%</td> |
218 | | - </tr> |
219 | | - <tr> |
220 | | - <td>HOLD</td> |
221 | | - <td>{{playLog.rateHold}}%</td> |
222 | | - </tr> |
223 | | - <tr> |
224 | | - <td>FLICK</td> |
225 | | - <td>{{playLog.rateFlick}}%</td> |
226 | | - </tr> |
227 | | - <tr> |
228 | | - <td>SIDE TAP</td> |
229 | | - <td>{{playLog.rateSideTap}}%</td> |
230 | | - </tr> |
231 | | - <tr> |
232 | | - <td>SIDE HOLD</td> |
233 | | - <td>{{playLog.rateSideHold}}%</td> |
234 | | - </tr> |
235 | | - </tbody> |
236 | | - </table> |
| 181 | + <div class="modal-header"> |
| 182 | + <h4 class="modal-title">{{ 'Ongeki.RecentPage.Details' | translate }}</h4> |
| 183 | + <button type="button" class="btn-close shadow-none" aria-label="Close" (click)="modal.dismiss()"></button> |
| 184 | + </div> |
| 185 | + <div class="modal-body"> |
| 186 | + <table class="judge-table table table-borderless table-sm table-striped table-dark align-middle"> |
| 187 | + <tbody> |
| 188 | + <tr> |
| 189 | + <td class="combo">COMBO</td> |
| 190 | + <td class="combo">{{ playLog.maxCombo }}</td> |
| 191 | + </tr> |
| 192 | + <tr> |
| 193 | + <td class="critical-break">C.BREAK</td> |
| 194 | + <td class="critical-break">{{ playLog.judgeCriticalBreak }}</td> |
| 195 | + </tr> |
| 196 | + <tr> |
| 197 | + <td class="break">BREAK</td> |
| 198 | + <td class="break">{{ playLog.judgeBreak }}</td> |
| 199 | + </tr> |
| 200 | + <tr> |
| 201 | + <td class="hit">HIT</td> |
| 202 | + <td class="hit">{{ playLog.judgeHit }}</td> |
| 203 | + </tr> |
| 204 | + <tr> |
| 205 | + <td class="miss">MISS</td> |
| 206 | + <td class="miss">{{ playLog.judgeMiss }}</td> |
| 207 | + </tr> |
| 208 | + <tr> |
| 209 | + <td class="bell">BELL</td> |
| 210 | + <td class="bell">{{ playLog.bellCount }}/{{ playLog.totalBellCount }}</td> |
| 211 | + </tr> |
| 212 | + <tr> |
| 213 | + <td class="damage">DAMAGE</td> |
| 214 | + <td class="damage">{{ playLog.damageCount }}</td> |
| 215 | + </tr> |
| 216 | + <tr> |
| 217 | + <td>TAP</td> |
| 218 | + <td>{{ playLog.rateTap }}%</td> |
| 219 | + </tr> |
| 220 | + <tr> |
| 221 | + <td>HOLD</td> |
| 222 | + <td>{{ playLog.rateHold }}%</td> |
| 223 | + </tr> |
| 224 | + <tr> |
| 225 | + <td>FLICK</td> |
| 226 | + <td>{{ playLog.rateFlick }}%</td> |
| 227 | + </tr> |
| 228 | + <tr> |
| 229 | + <td>SIDE TAP</td> |
| 230 | + <td>{{ playLog.rateSideTap }}%</td> |
| 231 | + </tr> |
| 232 | + <tr> |
| 233 | + <td>SIDE HOLD</td> |
| 234 | + <td>{{ playLog.rateSideHold }}%</td> |
| 235 | + </tr> |
| 236 | + </tbody> |
| 237 | + </table> |
237 | 238 | </div> |
238 | 239 | </ng-template> |
0 commit comments