Skip to content

Commit 30792c8

Browse files
committed
style(ongeki/profile): update rating image code,add -webkit mask image
1 parent c11c7d0 commit 30792c8

File tree

3 files changed

+31
-19
lines changed

3 files changed

+31
-19
lines changed

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -259,6 +259,7 @@
259259
mask-mode: alpha;
260260
mask-repeat: no-repeat;
261261
mask-size: contain;
262+
transform: scale(0.86);
262263
}
263264

264265
.rating-num-clip-path {

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

Lines changed: 7 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -40,28 +40,16 @@
4040
<img class="rating-num-fractional rating-new-num-fractional" src="{{host}}/assets/ongeki/gameUi/UI_NUM_30pt_Rating_{{getNewRatingType(profile.newPlayerRating)}}/{{Math.floor(profile.newPlayerRating / 100) % 10}}.webp">
4141
<img class="rating-num-fractional rating-new-num-fractional" src="{{host}}/assets/ongeki/gameUi/UI_NUM_30pt_Rating_{{getNewRatingType(profile.newPlayerRating)}}/{{Math.floor(profile.newPlayerRating / 10) % 10}}.webp">
4242
<img class="rating-num-fractional rating-new-num-fractional" src="{{host}}/assets/ongeki/gameUi/UI_NUM_30pt_Rating_{{getNewRatingType(profile.newPlayerRating)}}/{{Math.floor(profile.newPlayerRating) % 10}}.webp">
43-
<div class="rating-highest text-nowrap">(Max: {{(profile.newHighestRating / 1000) | number: '0.2-3'}})</div>
4443
</div>
4544
<ng-template [ngIf]="profile.newPlayerRating >= 20000">
4645
<div class="rating rating-num-clip-path">
47-
<img
48-
[style.mask-image]="'url(' + host + 'assets/ongeki/gameUi/UI_NUM_30pt_Rating_' + getNewRatingType(profile.newPlayerRating) + '/' + Math.floor(profile.newPlayerRating / 10000) + '.webp)'"
49-
class="rating-num-integer rating-new-num-mask" src="{{host}}/assets/ongeki/gameUi/UI_NUM_30pt_Rating_09Rainbow/0-no.webp">
50-
<img
51-
[style.mask-image]="'url(' + host + 'assets/ongeki/gameUi/UI_NUM_30pt_Rating_' + getNewRatingType(profile.newPlayerRating) + '/' + Math.floor(profile.newPlayerRating / 1000) % 10 + '.webp)'"
52-
class="rating-num-integer rating-new-num-mask" src="{{host}}/assets/ongeki/gameUi/UI_NUM_30pt_Rating_09Rainbow/0-no.webp">
53-
<img
54-
[style.mask-image]="'url(' + host + 'assets/ongeki/gameUi/UI_NUM_30pt_Rating_' + getNewRatingType(profile.newPlayerRating) + '/dot.webp)'"
55-
class="rating-num-dot rating-new-num-dot rating-new-num-mask" src="{{host}}/assets/ongeki/gameUi/UI_NUM_30pt_Rating_09Rainbow/dot-no.webp">
56-
<img
57-
[style.mask-image]="'url(' + host + 'assets/ongeki/gameUi/UI_NUM_30pt_Rating_' + getNewRatingType(profile.newPlayerRating) + '/' + Math.floor(profile.newPlayerRating / 100) % 10 + '.webp)'"
58-
class="rating-num-fractional rating-new-num-fractional rating-new-num-mask" src="{{host}}/assets/ongeki/gameUi/UI_NUM_30pt_Rating_09Rainbow/0-no.webp">
59-
<img
60-
[style.mask-image]="'url(' + host + 'assets/ongeki/gameUi/UI_NUM_30pt_Rating_' + getNewRatingType(profile.newPlayerRating) + '/' + Math.floor(profile.newPlayerRating / 10) % 10 + '.webp)'"
61-
class="rating-num-fractional rating-new-num-fractional rating-new-num-mask" src="{{host}}/assets/ongeki/gameUi/UI_NUM_30pt_Rating_09Rainbow/0-no.webp">
62-
<img
63-
[style.mask-image]="'url(' + host + 'assets/ongeki/gameUi/UI_NUM_30pt_Rating_' + getNewRatingType(profile.newPlayerRating) + '/' + Math.floor(profile.newPlayerRating % 10) + '.webp)'"
64-
class="rating-num-fractional rating-new-num-fractional rating-new-num-mask" src="{{host}}/assets/ongeki/gameUi/UI_NUM_30pt_Rating_09Rainbow/0-no.webp">
46+
<img *ngFor="let digit of maskDigits; let i = index"
47+
[style.mask-image]="getMaskImage(digit, i)"
48+
[style.-webkit-mask-image]="getMaskImage(digit, i)"
49+
[class]="getMaskClass(i)"
50+
src="{{host}}/assets/ongeki/gameUi/UI_NUM_30pt_Rating_09Rainbow/0-no.webp"
51+
alt=""
52+
/>
6553
</div>
6654
</ng-template>
6755
</ng-template>

src/app/sega/ongeki/ongeki-profile/ongeki-profile.component.ts

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,4 +140,27 @@ export class OngekiProfileComponent implements OnInit {
140140
return operator === '>=';
141141
}
142142

143+
get maskDigits(): number[] {
144+
const rating = this.profile.newPlayerRating;
145+
return [
146+
Math.floor(rating / 10000),
147+
Math.floor(rating / 1000) % 10,
148+
-1, // -1 代表小数点
149+
Math.floor(rating / 100) % 10,
150+
Math.floor(rating / 10) % 10,
151+
Math.floor(rating % 10)
152+
];
153+
}
154+
155+
getMaskImage(digit: number, index: number): string {
156+
const basePath = `${this.host}assets/ongeki/gameUi/UI_NUM_30pt_Rating_${this.getNewRatingType(this.profile.newPlayerRating)}`;
157+
if (digit === -1) { return `url(${basePath}/dot.webp)`; }
158+
return `url(${basePath}/${digit}.webp)`;
159+
}
160+
161+
getMaskClass(index: number): string {
162+
if (index < 2) { return 'rating-num-integer rating-new-num-mask'; }
163+
if (index === 2) { return 'rating-num-dot rating-new-num-dot rating-new-num-mask'; }
164+
return 'rating-num-fractional rating-new-num-fractional rating-new-num-mask';
165+
}
143166
}

0 commit comments

Comments
 (0)