Skip to content

Commit 61c1122

Browse files
committed
feat(ongeki): platinum rating display
1 parent b319c59 commit 61c1122

File tree

4 files changed

+86
-9
lines changed

4 files changed

+86
-9
lines changed

src/app/sega/ongeki/ongeki-rating/ongeki-rating.component.css

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,11 @@
5555
width: 28px;
5656
}
5757

58+
.honor-star {
59+
aspect-ratio: 4.5;
60+
width: 3.6em;
61+
}
62+
5863
.honor{
5964
height: 28px;
6065
}

src/app/sega/ongeki/ongeki-rating/ongeki-rating.component.html

Lines changed: 76 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,15 @@ <h2 class="mb-0">{{ 'Ongeki.RatingPage.Best' | translate }}</h2>
4040
<ng-container *ngTemplateOutlet="newTechItem; context: {item: item, index: i, type: NewRatingType.Best}"></ng-container>
4141
</ng-container>
4242
</div>
43+
<div class="mb-3 d-flex align-items-center">
44+
<h2 class="mb-0">{{ 'Ongeki.RatingPage.Platinum' | translate }}</h2>
45+
<span class="badge bg-primary rounded-pill ms-2">{{ ratingV2.avgPlatinum }}</span>
46+
</div>
47+
<div *ngIf="ratingV2.platinumList" class="row mb-4 g-1 row-cols-xxs-1 row-cols-2 row-cols-sm-3 row-cols-xl-4 row-cols-xxl-5">
48+
<ng-container *ngFor="let item of ratingV2.platinumList; index as i">
49+
<ng-container *ngTemplateOutlet="newPlatinumItem; context: {item: item, index: i, type: NewRatingType.Platinum}"></ng-container>
50+
</ng-container>
51+
</div>
4352

4453
<ng-template #newTechItem let-index="index" let-item="item" let-type="type">
4554
<div class="col">
@@ -58,16 +67,16 @@ <h2 class="mb-0">{{ 'Ongeki.RatingPage.Best' | translate }}</h2>
5867
<span *ngSwitchCase="0" class="difficulty difficulty-basic badge rounded-pill">
5968
{{ (item.musicInfo?.level0 | toLevelDecimal) ?? 'Basic' }}
6069
</span>
61-
<span *ngSwitchCase="1" class="difficulty difficulty-advanced badge rounded-pill">
70+
<span *ngSwitchCase="1" class="difficulty difficulty-advanced badge rounded-pill">
6271
{{ (item.musicInfo?.level1 | toLevelDecimal) ?? 'Advanced' }}
6372
</span>
64-
<span *ngSwitchCase="2" class="difficulty difficulty-expert badge rounded-pill">
73+
<span *ngSwitchCase="2" class="difficulty difficulty-expert badge rounded-pill">
6574
{{ (item.musicInfo?.level2 | toLevelDecimal) ?? 'Expert' }}
6675
</span>
67-
<span *ngSwitchCase="3" class="difficulty difficulty-master badge rounded-pill">
76+
<span *ngSwitchCase="3" class="difficulty difficulty-master badge rounded-pill">
6877
{{ (item.musicInfo?.level3 | toLevelDecimal) ?? 'Master' }}
6978
</span>
70-
<span *ngSwitchCase="10" class="difficulty difficulty-lunatic badge rounded-pill text-danger border border-danger">
79+
<span *ngSwitchCase="10" class="difficulty difficulty-lunatic badge rounded-pill text-danger border border-danger">
7180
{{ (item.musicInfo?.level4 | toLevelDecimal) ?? 'Lunatic' }}
7281
</span>
7382
</ng-container>
@@ -91,7 +100,7 @@ <h2 class="mb-0">{{ 'Ongeki.RatingPage.Best' | translate }}</h2>
91100
<ng-container [ngSwitch]="item.clearMarkType">
92101
<img *ngSwitchCase="ClearMarkType.AllBreakPlus"
93102
class="honor-badge"
94-
src="{{host}}assets/ongeki/gameUi/UI_SLC_MusicSelect_HornorBadge_AB.webp" alt="">
103+
src="{{host}}assets/ongeki/gameUi/UI_SLC_MusicSelect_HornorBadge_ABPlus.webp" alt="">
95104
<img *ngSwitchCase="ClearMarkType.AllBreak"
96105
class="honor-badge"
97106
src="{{host}}assets/ongeki/gameUi/UI_SLC_MusicSelect_HornorBadge_AB.webp" alt="">
@@ -120,6 +129,67 @@ <h2 class="mb-0">{{ 'Ongeki.RatingPage.Best' | translate }}</h2>
120129
</ng-template>
121130
</ng-container>
122131

132+
<ng-template #newPlatinumItem let-index="index" let-item="item" let-type="type">
133+
<div class="col">
134+
<div class="card rating-card card-btn user-select-none"
135+
(click)="item.musicInfo?showDetail(item.musicInfo):undefined">
136+
<div class="hstack">
137+
<img class="new-jacket"
138+
src="{{host}}assets/ongeki/jacket/UI_Jacket_{{item.musicId|formatNumber:4}}_S.webp"
139+
(error)="setDefaultJacket($event)">
140+
<div *ngIf="item.musicId != 0" class="card-body small overflow-hidden py-0 px-2">
141+
<div class="text-truncate fw-bold m-0">
142+
{{ item.musicInfo ? item.musicInfo.name : 'MusicID:' + item.musicId }}
143+
</div>
144+
<div class="d-flex align-items-center gap-1">
145+
<ng-container [ngSwitch]="item.level">
146+
<span *ngSwitchCase="0" class="difficulty difficulty-basic badge rounded-pill">
147+
{{ (item.musicInfo?.level0 | toLevelDecimal) ?? 'Basic' }}
148+
</span>
149+
<span *ngSwitchCase="1" class="difficulty difficulty-advanced badge rounded-pill">
150+
{{ (item.musicInfo?.level1 | toLevelDecimal) ?? 'Advanced' }}
151+
</span>
152+
<span *ngSwitchCase="2" class="difficulty difficulty-expert badge rounded-pill">
153+
{{ (item.musicInfo?.level2 | toLevelDecimal) ?? 'Expert' }}
154+
</span>
155+
<span *ngSwitchCase="3" class="difficulty difficulty-master badge rounded-pill">
156+
{{ (item.musicInfo?.level3 | toLevelDecimal) ?? 'Master' }}
157+
</span>
158+
<span *ngSwitchCase="10" class="difficulty difficulty-lunatic badge rounded-pill text-danger border border-danger">
159+
{{ (item.musicInfo?.level4 | toLevelDecimal) ?? 'Lunatic' }}
160+
</span>
161+
</ng-container>
162+
<div>
163+
{{ item.platinumScoreMax }}
164+
</div>
165+
</div>
166+
167+
</div>
168+
<div *ngIf="item.musicId == 0" class="card-body overflow-hidden py-0 px-4 text-truncate">
169+
No Record
170+
</div>
171+
</div>
172+
<div class="card-footer p-0 px-1">
173+
<div class="d-flex align-items-center justify-content-between">
174+
<div class="d-flex align-items-center gap-1">
175+
<div class="honor">
176+
<img class="honor-star"
177+
src="{{host}}assets/ongeki/gameUi/UI_CMN_Platinum_Star_{{item.platinumScoreStar}}.webp"
178+
alt="">
179+
</div>
180+
<div *ngIf="item.musicInfo" class="text-truncate small">
181+
<span class="score-value">{{ (newRating.calcRate1000(item, type)/1000).toFixed(3) }}</span>
182+
</div>
183+
</div>
184+
<div class="small fw-bold">
185+
#{{ index + 1 }}
186+
</div>
187+
</div>
188+
</div>
189+
</div>
190+
</div>
191+
</ng-template>
192+
123193

124194
<ng-container *ngIf="ratingV1">
125195
<div class="alert alert-info">
@@ -143,7 +213,7 @@ <h2 class="mb-0">{{ 'Ongeki.RatingPage.Best' | translate }}</h2>
143213
<div *ngIf="avgRating && profile && avgRating != (profile.playerRating / 100 | number: '1.2-2')"
144214
class="hstack alert alert-warning" role="alert">
145215
<ng-icon class="me-2" name="bootstrap-exclamation-triangle-fill"></ng-icon>
146-
{{ 'Ongeki.RatingPage.RatingWarning' | translate }}
216+
{{ 'Ongeki.RatingPage.DataVersionWarning' | translate }}
147217
</div>
148218
<div class="mb-3 d-flex align-items-center">
149219
<h2 class="mb-0">{{ 'Ongeki.RatingPage.New' | translate }}</h2>

src/assets/i18n/en.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -286,7 +286,7 @@
286286
"Tip1": "15 highest ratings from new version fumens",
287287
"Tip2": "30 highest ratings from old version fumens",
288288
"Tip3": "10 highest ratings from recent plays, excluding Lunatic difficulty",
289-
"RatingWarning": "The data from your last play doesn't match the server version, so song ratings may be inaccurate.",
289+
"DataVersionWarning": "Due to a mismatch between the game and server data versions, the fumen constants or rating calculations may be incorrect.",
290290
"PlayerRating": "Player Rating",
291291
"HighestRating": "Highest Rating",
292292
"New": "Current Version",

src/assets/i18n/zh.json

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -282,16 +282,18 @@
282282
},
283283
"RatingPage": {
284284
"Title": "评级",
285+
"Overview": "概览",
285286
"TipLead": "单曲评级由谱面定数与得分经过计算得出,玩家评级由55个单曲评级取平均数得出,其中包含:",
286287
"Tip1": "来自当前版本的15个最高评级的谱面",
287288
"Tip2": "来自以往版本的30个最高评级的谱面",
288289
"Tip3": "30次最近游玩记录中的10个最高评级(不计入Lunatic难度)",
289-
"RatingWarning": "上次游玩使用的数据与服务器中的数据不匹配,单曲评级计算可能有误",
290+
"DataVersionWarning": "由于游戏与服务器数据版本不一致,谱面定数或评级计算可能有误",
290291
"PlayerRating": "玩家评级",
291292
"HighestRating": "最高评级",
292293
"New": "当前版本",
293294
"Best": "以往版本",
294-
"Recent": "最近"
295+
"Recent": "最近",
296+
"Platinum": "白金"
295297
},
296298
"RecentPage": {
297299
"Title": "游玩记录",

0 commit comments

Comments
 (0)