Skip to content

Commit 03ddfb6

Browse files
authored
Merge pull request #899 from project-primera/develop
Release: 0.20.2
2 parents a4d2a99 + 57a1383 commit 03ddfb6

File tree

8 files changed

+62
-37
lines changed

8 files changed

+62
-37
lines changed

OngekiScoreLog/app/Http/Controllers/ViewUserController.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -166,12 +166,14 @@ public function getUserPage(Request $request, $id, $mode = null){
166166
foreach ($score as $key => $value) {
167167
// レート値を表示していいユーザーなら取得 だめなら隠す
168168
if(\App\UserInformation::IsPremiumPlan($user->id)){
169-
$score[$key]->ratingValue = sprintf("%.3f", OngekiUtility::RateValueFromTitle($score[$key]->title, $score[$key]->difficulty, $score[$key]->technical_high_score, $score[$key]->lamp, $score[$key]->genre, $score[$key]->artist));
169+
$score[$key]->ratingValue = sprintf("%.3f", OngekiUtility::RateValueFromTitle($score[$key]->title, $score[$key]->difficulty, $score[$key]->technical_high_score, $score[$key]->lampForRating, $score[$key]->genre, $score[$key]->artist));
170170
$score[$key]->ratingValueRaw = $score[$key]->ratingValue;
171171
if (OngekiUtility::IsEstimatedRateValueFromTitle($score[$key]->title, $score[$key]->difficulty, $score[$key]->genre, $score[$key]->artist)) {
172172
$score[$key]->ratingValue = "<i><span class='estimated-rating'>" . $score[$key]->ratingValue . "</span></i>";
173-
}else if($score[$key]->technical_high_score >= 1007500){
173+
}elseif($score[$key]->technical_high_score == 1010000){
174174
$score[$key]->ratingValue = "<i><span class='max-rating'>" . $score[$key]->ratingValue . "</span></i>";
175+
}elseif($score[$key]->technical_high_score >= 1007500){
176+
$score[$key]->ratingValue = "<i><span class='upper-rating'>" . $score[$key]->ratingValue . "</span></i>";
175177
}
176178
}else{
177179
$score[$key]->ratingValue = "|||||||||";

OngekiScoreLog/app/Http/Controllers/ViewUserRatingController.php

Lines changed: 23 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -25,33 +25,33 @@ private function editMusic($scores, int $totalMusicCount){
2525
for ($index = 0; $index < count($scores); $index++) {
2626
if (isset($scores[$index])) {
2727
// ランプ情報追加
28-
$scores[$index]->lamp = "";
28+
$scores[$index]->lampForRating = "";
2929
if ($scores[$index]->technical_high_score == 1010000){
3030
if ($scores[$index]->full_bell == 1) {
31-
$scores[$index]->lamp = "FB/AB+";
31+
$scores[$index]->lampForRating = "FB/AB+";
3232
} else {
33-
$scores[$index]->lamp = "AB+";
33+
$scores[$index]->lampForRating = "AB+";
3434
}
3535
} elseif ($scores[$index]->all_break == 1) {
3636
if ($scores[$index]->full_bell == 1) {
37-
$scores[$index]->lamp = "FB/AB";
37+
$scores[$index]->lampForRating = "FB/AB";
3838
} else {
39-
$scores[$index]->lamp = "AB";
39+
$scores[$index]->lampForRating = "AB";
4040
}
4141
} elseif ($scores[$index]->full_combo == 1) {
4242
if ($scores[$index]->full_bell == 1) {
43-
$scores[$index]->lamp = "FB/FC";
43+
$scores[$index]->lampForRating = "FB/FC";
4444
} else {
45-
$scores[$index]->lamp = "FC";
45+
$scores[$index]->lampForRating = "FC";
4646
}
4747
} else {
4848
if ($scores[$index]->full_bell == 1) {
49-
$scores[$index]->lamp = "FB";
49+
$scores[$index]->lampForRating = "FB";
5050
}
5151
}
5252

5353
// 単極レート値の取得
54-
$scores[$index]->ratingValue = sprintf("%.2f", OngekiUtility::RateValueFromTitle($scores[$index]->title, $scores[$index]->difficulty, $scores[$index]->technical_high_score, $scores[$index]->lamp, $scores[$index]->genre, $scores[$index]->artist));
54+
$scores[$index]->ratingValue = sprintf("%.3f", OngekiUtility::RateValueFromTitle($scores[$index]->title, $scores[$index]->difficulty, $scores[$index]->technical_high_score, $scores[$index]->lampForRating, $scores[$index]->genre, $scores[$index]->artist));
5555
$scores[$index]->rawRatingValue = $scores[$index]->ratingValue;
5656

5757
// レート値上昇推定スコア計算
@@ -79,8 +79,10 @@ private function editMusic($scores, int $totalMusicCount){
7979
if (OngekiUtility::IsEstimatedRateValueFromTitle($scores[$index]->title, $scores[$index]->difficulty, $scores[$index]->genre, $scores[$index]->artist)) {
8080
$scores[$index]->extraLevelStr = "<i><span class='estimated-rating'>" . $scores[$index]->extraLevelStr . "?</span></i>";
8181
$scores[$index]->ratingValue = "<i><span class='estimated-rating'>" . $scores[$index]->ratingValue . "</span></i>";
82-
}else if($scores[$index]->technical_high_score >= 1007500){
82+
}elseif($scores[$index]->technical_high_score == 1010000){
8383
$scores[$index]->ratingValue = "<i><span class='max-rating'>" . $scores[$index]->ratingValue . "</span></i>";
84+
}elseif($scores[$index]->technical_high_score >= 1007500){
85+
$scores[$index]->ratingValue = "<i><span class='upper-rating'>" . $scores[$index]->ratingValue . "</span></i>";
8486
}
8587

8688
$scores[$index]->difficulty_str = $this->difficultyToStr[$scores[$index]->difficulty];
@@ -150,6 +152,7 @@ public function getIndex($id){
150152
$notExistMusic->ratingValue = "-";
151153
$notExistMusic->rawRatingValue = 0;
152154
$notExistMusic->lamp = "";
155+
$notExistMusic->lampForRating = "";
153156
$notExistMusic->targetMusicRateMusic = "";
154157
$notExistMusic->targetMusicRateBorder = "";
155158
$notExistMusic->targetMusicRateUser = "";
@@ -249,6 +252,16 @@ public function getIndex($id){
249252
if(is_null($statistics->platinumRatingMin) || $statistics->platinumRatingMin > $platinumMusic[$i]['rawRatingValue']){
250253
$statistics->platinumRatingMin = $platinumMusic[$i]['rawRatingValue'];
251254
}
255+
256+
// レート値が理論値 / 推定値なら文字装飾
257+
if (OngekiUtility::IsEstimatedRateValueFromTitle($platinumMusic[$i]['title'], $platinumMusic[$i]['difficulty'], $platinumMusic[$i]['platinum_score'], $platinumMusic[$i]['star'], $platinumMusic[$i]['genre'], $platinumMusic[$i]['artist'])) {
258+
$platinumMusic[$i]['level_str'] = "<i><span class='estimated-rating'>" . $platinumMusic[$i]['level_str'] . "?</span></i>";
259+
$platinumMusic[$i]['ratingValue'] = "<i><span class='estimated-rating'>" . $platinumMusic[$i]['ratingValue'] . "</span></i>";
260+
} elseif ($platinumMusic[$i]['star'] >= 5){
261+
$platinumMusic[$i]['ratingValue'] = "<i><span class='max-rating'>" . $platinumMusic[$i]['ratingValue'] . "</span></i>";
262+
} elseif($platinumMusic[$i]['star'] >= 4){
263+
$platinumMusic[$i]['ratingValue'] = "<i><span class='upper-rating'>" . $platinumMusic[$i]['ratingValue'] . "</span></i>";
264+
}
252265
} catch (\OutOfBoundsException $e) {
253266
$ua = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : "N/A";
254267
Slack::Notice("プラチナスコア枠に未知の楽曲が含まれているユーザーがいます。". $e->getMessage() . "\n" . get_class($e) . "\n" . url()->full(), "ip: " . \Request::ip() . "\nUser agent: " . $ua . "\nReferer: " . (isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : "N/A") . "\n\n", ["File" => $e->getFile(), "Line" => $e->getLine(), "IP Address" => \Request::ip(), "User page id" => $user->id], "warning");

OngekiScoreLog/app/ScoreData.php

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -69,28 +69,28 @@ function addMusicData(){
6969
}
7070

7171
// レート計算用 ランプ処理
72-
$this->value[$key]->lamp = "";
72+
$this->value[$key]->lampForRating = "";
7373
if ($this->value[$key]->technical_high_score == 1010000){
7474
if ($this->value[$key]->full_bell == 1) {
75-
$this->value[$key]->lamp = "FB/AB+";
75+
$this->value[$key]->lampForRating = "FB/AB+";
7676
} else {
77-
$this->value[$key]->lamp = "AB+";
77+
$this->value[$key]->lampForRating = "AB+";
7878
}
7979
} elseif ($this->value[$key]->all_break == 1) {
8080
if ($this->value[$key]->full_bell == 1) {
81-
$this->value[$key]->lamp = "FB/AB";
81+
$this->value[$key]->lampForRating = "FB/AB";
8282
} else {
83-
$this->value[$key]->lamp = "AB";
83+
$this->value[$key]->lampForRating = "AB";
8484
}
8585
} elseif ($this->value[$key]->full_combo == 1) {
8686
if ($this->value[$key]->full_bell == 1) {
87-
$this->value[$key]->lamp = "FB/FC";
87+
$this->value[$key]->lampForRating = "FB/FC";
8888
} else {
89-
$this->value[$key]->lamp = "FC";
89+
$this->value[$key]->lampForRating = "FC";
9090
}
9191
} else {
9292
if ($this->value[$key]->full_bell == 1) {
93-
$this->value[$key]->lamp = "FB";
93+
$this->value[$key]->lampForRating = "FB";
9494
}
9595
}
9696
}

OngekiScoreLog/app/Services/OngekiUtility.php

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ public function ExtraLevelFromTitle(string $title, $difficulty, $genre, $artist)
9292
}
9393

9494
public function RateValueFromTitle(string $title, $difficulty,
95-
int $technicalScore, string $lamp, $genre, $artist
95+
int $technicalScore, string $lampForRating, $genre, $artist
9696
) {
9797
if(is_int($difficulty)){
9898
$keys = [
@@ -124,7 +124,7 @@ public function RateValueFromTitle(string $title, $difficulty,
124124

125125
$result = $this->calcRatingValue($this::$MusicList[$title][$difficulty], $technicalScore);
126126
$result += $this->calcRankRatingValue($technicalScore);
127-
$result += $this->calcLampRatingValue($lamp);
127+
$result += $this->calcLampRatingValue($lampForRating);
128128
return $result;
129129
}
130130

@@ -163,21 +163,21 @@ private function calcRankRatingValue(int $technicalScore)
163163
return 0;
164164
}
165165

166-
private function calcLampRatingValue(string $lamp)
166+
private function calcLampRatingValue(string $lampForRating)
167167
{
168-
if ($lamp == "FB/AB+") {
168+
if ($lampForRating == "FB/AB+") {
169169
return 0.4;
170-
} elseif ($lamp == "AB+") {
170+
} elseif ($lampForRating == "AB+") {
171171
return 0.35;
172-
} elseif ($lamp == "FB/AB") {
172+
} elseif ($lampForRating == "FB/AB") {
173173
return 0.35;
174-
} elseif ($lamp == "AB") {
174+
} elseif ($lampForRating == "AB") {
175175
return 0.3;
176-
} elseif ($lamp == "FB/FC") {
176+
} elseif ($lampForRating == "FB/FC") {
177177
return 0.15;
178-
} elseif ($lamp == "FC") {
178+
} elseif ($lampForRating == "FC") {
179179
return 0.1;
180-
} elseif ($lamp == "FB") {
180+
} elseif ($lampForRating == "FB") {
181181
return 0.05;
182182
}
183183
return 0;
@@ -223,8 +223,10 @@ public function RateValueFromTitleForPlatinum(string $title, $difficulty, int $p
223223

224224
private function calcPlatinumRatingValue(float $extraLevel, int $platinumScore, int $starCount)
225225
{
226-
// 本当に何もわからない
227-
return 0;
226+
if($starCount > 5){
227+
$starCount = 5;
228+
}
229+
return $extraLevel * $extraLevel * $starCount / 1000;
228230
}
229231

230232
/**

OngekiScoreLog/resources/assets/js/bookmarklets/getScore.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -223,8 +223,13 @@ import * as qs from 'qs';
223223
artist = artist.substring(0, artist.indexOf('\n'));
224224
console.log(artist);
225225
}
226+
226227
let platinumScore = +$($(element).find(".platinum_high_score_text_block")).text().replace(/,/g, "").split("/")[0];
227228
let star = +($($(element).find(".platinum_high_score_star_block").find(".f_b")).text());
229+
let isAb = ($(element).find("[src*='music_icon_fc.png']").length > 0 || $(element).find("[src*='music_icon_ab.png']").length > 0
230+
|| $(element).find("[src*='music_icon_fc.png']").length > 0 || $(element).find("[src*='music_icon_abplus.png']").length > 0);
231+
let isFc = (isAb || $(element).find("[src*='music_icon_fc.png']").length > 0 || $(element).find("[src*='music_icon_fc.png']").length > 0);
232+
228233
let song = new SongInfo(
229234
name,
230235
difficulty,
@@ -234,8 +239,8 @@ import * as qs from 'qs';
234239
+$($(element).find(".score_value")[1]).text().replace(/,/g, ""),
235240
+$($(element).find(".score_value")[2]).text().replace(/,/g, ""),
236241
$(element).find("[src*='music_icon_fb.png']").length > 0,
237-
$(element).find("[src*='music_icon_fc.png']").length > 0 || $(element).find("[src*='music_icon_ab.png']").length > 0,
238-
$(element).find("[src*='music_icon_ab.png']").length > 0,
242+
isFc,
243+
isAb,
239244
artist,
240245
platinumScore,
241246
star,

OngekiScoreLog/resources/assets/sass/style.scss

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,10 @@ div.column{
171171
color: #a00;
172172
}
173173

174+
.upper-rating{
175+
font-weight: bold;
176+
}
177+
174178
.lamp{
175179
$fb: #c1b400;
176180
$fc: #2b922d;

OngekiScoreLog/resources/views/layouts/components/user_rating/rating_best_table.blade.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
<td>{{substr($array[$i]->difficulty_str, 0, 3)}}</td>
3636
<td>{!!$array[$i]->extraLevelStr!!}</td>
3737
<td>{{number_format($array[$i]->technical_high_score)}}</td>
38-
<td>{{ $array[$i]->lamp }}</td>
38+
<td>{{ $array[$i]->lampForRating }}</td>
3939
<td>{!!$array[$i]->ratingValue!!}</td>
4040
</tr>
4141
@endfor
@@ -90,7 +90,7 @@
9090
<td>{{substr($array[$i]->difficulty_str, 0, 3)}}</td>
9191
<td>{!!$array[$i]->extraLevelStr!!}</td>
9292
<td>{{number_format($array[$i]->technical_high_score)}}</td>
93-
<td>{{$array[$i]->lamp}}</td>
93+
<td>{{$array[$i]->lampForRating}}</td>
9494
<td>{!!$array[$i]->ratingValue!!}</td>
9595
<td>{{sprintf("%.3f", $array[$i]->minDifferenceRate)}}</td>
9696
<td>{{$array[$i]->minDifferenceScore}}</td>

OngekiScoreLog/resources/views/user_rating.blade.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
@section('content')
2727
<article id="rating_statistics" class="box">
2828
<h3 class="title is-3">レーティング対象曲の統計</h3>
29-
<p style="font-size: 1.2em;">レーティング計算式は調査中のため、<b>この画面の情報はすべて間違っています!!</b></p>
3029
<p>
3130
■統計&nbsp;/&nbsp;<a data-scroll href="#rating_new">▼新曲枠</a>&nbsp;/&nbsp;<a data-scroll href="#rating_old">▼ベスト枠</a>&nbsp;/&nbsp;<a data-scroll href="#rating_platinum">▼プラチナスコア枠</a>
3231
</p>

0 commit comments

Comments
 (0)