Skip to content

Commit 9ddcee0

Browse files
committed
feat(ongeki/recent): platinum score display
1 parent 30792c8 commit 9ddcee0

File tree

3 files changed

+110
-89
lines changed

3 files changed

+110
-89
lines changed

src/app/sega/ongeki/ongeki-recent-item/ongeki-recent-item.component.css

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@
6565
.play-result .score-area .item-header {
6666
font-size: 12px;
6767
font-weight: bold;
68+
right: 0;
6869
}
6970

7071
.play-result .score-area .battle-item-header {
@@ -83,6 +84,21 @@
8384
font-size: 16px;
8485
}
8586

87+
.platinum-score{
88+
font-size: 80%!important;
89+
}
90+
91+
.platinum-star {
92+
text-align: right;
93+
height: 10px;
94+
margin: 0 -0.5px;
95+
float: right;
96+
}
97+
98+
.platinum-star-container {
99+
height: 10px;
100+
}
101+
86102
.play-result .score-area .score {
87103
position: relative;
88104
}

src/app/sega/ongeki/ongeki-recent-item/ongeki-recent-item.component.html

Lines changed: 90 additions & 89 deletions
Original file line numberDiff line numberDiff line change
@@ -10,41 +10,41 @@
1010
<!--title-->
1111
<div class="song-info-title text-truncate fw-bold">
1212
<span>
13-
{{playLog.songInfo != null ? playLog.songInfo.name : 'MusicID:' + playLog.musicId}}
13+
{{ playLog.songInfo != null ? playLog.songInfo.name : 'MusicID:' + playLog.musicId }}
1414
</span>
1515
</div>
1616
<!--artist-->
1717
<div class="song-info-artist text-truncate ">
1818
<span>
19-
{{playLog.songInfo != null ? playLog.songInfo.artistName : ('Ongeki.RecentPage.UnknownArtist' | translate)}}
19+
{{ playLog.songInfo != null ? playLog.songInfo.artistName : ('Ongeki.RecentPage.UnknownArtist' | translate) }}
2020
</span>
2121
</div>
2222
<!--difficulty-->
2323
<div [ngSwitch]="difficulty[playLog.level]">
2424
<span *ngSwitchCase="'Basic'"
2525
class="difficulty difficulty-basic badge rounded-pill">
2626
Basic
27-
{{(playLog.songInfo?.level0 | toLevelDecimal)??'None'}}
27+
{{ (playLog.songInfo?.level0 | toLevelDecimal) ?? 'None' }}
2828
</span>
2929
<span *ngSwitchCase="'Advanced'"
3030
class="difficulty difficulty-advanced badge rounded-pill">
3131
Advanced
32-
{{(playLog.songInfo?.level1 | toLevelDecimal)??'None'}}
32+
{{ (playLog.songInfo?.level1 | toLevelDecimal) ?? 'None' }}
3333
</span>
3434
<span *ngSwitchCase="'Expert'"
3535
class="difficulty difficulty-expert badge rounded-pill">
3636
Expert
37-
{{(playLog.songInfo?.level2 | toLevelDecimal)??'None'}}
37+
{{ (playLog.songInfo?.level2 | toLevelDecimal) ?? 'None' }}
3838
</span>
3939
<span *ngSwitchCase="'Master'"
4040
class="difficulty difficulty-master badge rounded-pill">
4141
Master
42-
{{(playLog.songInfo?.level3 | toLevelDecimal)??'None'}}
42+
{{ (playLog.songInfo?.level3 | toLevelDecimal) ?? 'None' }}
4343
</span>
4444
<span *ngSwitchCase="'Lunatic'"
4545
class="difficulty difficulty-lunatic badge rounded-pill">
4646
Lunatic
47-
{{(playLog.songInfo?.level4 | toLevelDecimal)??'None'}}
47+
{{ (playLog.songInfo?.level4 | toLevelDecimal) ?? 'None' }}
4848
</span>
4949
</div>
5050
</div>
@@ -59,16 +59,16 @@
5959
<span>BATTLE SCORE</span>
6060
</div>
6161
<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>
6464
</div>
6565
<!--over damage-->
6666
<div class="item-header battle-item-header">
6767
<span>OVER DAMAGE</span>
6868
</div>
6969
<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>
7272
</div>
7373
</div>
7474
<!--score stamp-->
@@ -82,25 +82,24 @@
8282
<span>TECHNICAL SCORE</span>
8383
</div>
8484
<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>
10387
</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>
104103
</div>
105104
<!--score rank-->
106105
<div class="col-6 col-sm-3 col-md-6 col-lg-3 align-items-center d-flex" style="max-width: 150px">
@@ -165,74 +164,76 @@
165164
</div>
166165
<div class="card-footer fw-bold">
167166
<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>
169169
</div>
170170
<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>
172173
</div>
173174
<div class="float-end">
174-
<span>{{(playLog.userPlayDate | toDate).toLocaleString()}}</span>
175+
<span>{{ (playLog.userPlayDate | toDate).toLocaleString() }}</span>
175176
</div>
176177
</div>
177178
</div>
178179

179180
<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>
237238
</div>
238239
</ng-template>

src/app/sega/ongeki/ongeki-recent-item/ongeki-recent-item.component.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,4 +43,8 @@ export class OngekiRecentItemComponent implements OnInit {
4343
});
4444
offcanvasRef.componentInstance.music = music;
4545
}
46+
47+
getArrayFromNumber(n: number): any[] {
48+
return new Array(n);
49+
}
4650
}

0 commit comments

Comments
 (0)