1
0
mirror of synced 2024-11-28 01:10:53 +01:00

Completely untie bombs and bads/miss to avoid error-prone code, make combo guides more clear visually

This commit is contained in:
0aubsq 2022-06-15 06:48:36 +02:00
parent fea443281c
commit 6b9387a490
10 changed files with 66 additions and 121 deletions

View File

@ -391,7 +391,7 @@ namespace TJAPlayer3
if (ccf.nGood > 0)
guide = 1;
if (ccf.nMiss > 0)
if (ccf.nMiss > 0 || ccf.nMine > 0)
guide = 0;
TJAPlayer3.Tx.Taiko_Combo_Guide[guide]?.t2D拡大率考慮下中心基準描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_Combo_Text_X[nPlayer], TJAPlayer3.Skin.Game_Taiko_Combo_Text_Y[nPlayer]);

View File

@ -1710,17 +1710,21 @@ namespace TJAPlayer3
if(!NotesManager.IsMissableNote(pChip) && !bBombHit)
break;
if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan)
this.n不可[actDan.NowShowingNumber]++;
else if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Tower)
if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Tower)
CFloorManagement.damage();
this.CBranchScore[nPlayer].nMiss++;
this.CChartScore[nPlayer].nMiss++;
this.Chara_MissCount[nPlayer]++;
if ( nPlayer == 0 ) this.nヒット数_Auto含まない.Drums.Miss++;
if (!bBombHit)
{
if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan)
this.n不可[actDan.NowShowingNumber]++;
this.CBranchScore[nPlayer].nMiss++;
this.CChartScore[nPlayer].nMiss++;
this.Chara_MissCount[nPlayer]++;
if (nPlayer == 0) this.nヒット数_Auto含まない.Drums.Miss++;
}
this.actCombo.n現在のコンボ数[ nPlayer ] = 0;
this.actComboVoice.tReset(nPlayer);
@ -1813,14 +1817,18 @@ namespace TJAPlayer3
if (!NotesManager.IsMissableNote(pChip) && !bBombHit)
break;
if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan)
this.n不可[actDan.NowShowingNumber]++;
else if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Tower)
if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Tower)
CFloorManagement.damage();
this.CBranchScore[nPlayer].nMiss++;
this.CChartScore[nPlayer].nMiss++;
this.Chara_MissCount[nPlayer]++;
if (!bBombHit)
{
if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan)
this.n不可[actDan.NowShowingNumber]++;
this.CBranchScore[nPlayer].nMiss++;
this.CChartScore[nPlayer].nMiss++;
this.Chara_MissCount[nPlayer]++;
}
this.actCombo.n現在のコンボ数[ nPlayer ] = 0;
this.actComboVoice.tReset(nPlayer);

View File

@ -198,7 +198,7 @@ namespace TJAPlayer3
{
#region [Tower score ranks]
double progress = CFloorManagement.LastRegisteredFloor / (double)TJAPlayer3.stage選曲.r確定された曲.arスコア[5]..nTotalFloor;
double progress = CFloorManagement.LastRegisteredFloor / ((double)TJAPlayer3.stage選曲.r確定された曲.arスコア[5]..nTotalFloor);
bool[] conditions =
{
@ -207,7 +207,7 @@ namespace TJAPlayer3
progress >= 0.5,
progress >= 0.75,
progress == 1 && CFloorManagement.CurrentNumberOfLives > 0,
TJAPlayer3.stage演奏ドラム画面.CChartScore[0].nMiss == 0,
TJAPlayer3.stage演奏ドラム画面.CChartScore[0].nMiss == 0 && TJAPlayer3.stage演奏ドラム画面.CChartScore[0].nMine == 0,
TJAPlayer3.stage演奏ドラム画面.CChartScore[0].nGood == 0
};

View File

@ -42,7 +42,7 @@ namespace TJAPlayer3
{
if (CFloorManagement.CurrentNumberOfLives > 0)
{
if (TJAPlayer3.stage演奏ドラム画面.CChartScore[0].nMiss == 0)
if (TJAPlayer3.stage演奏ドラム画面.CChartScore[0].nMiss == 0 && TJAPlayer3.stage演奏ドラム画面.CChartScore[0].nMine == 0)
{
if (TJAPlayer3.stage演奏ドラム画面.CChartScore[0].nGood == 0)
this.Mode[0] = EndMode.StageDondaFullCombo;
@ -63,7 +63,7 @@ namespace TJAPlayer3
// 段位認定モード、クリア成功
// this.Mode[0] = EndMode.StageCleared;
if (TJAPlayer3.stage演奏ドラム画面.CChartScore[0].nMiss == 0)
if (TJAPlayer3.stage演奏ドラム画面.CChartScore[0].nMiss == 0 && TJAPlayer3.stage演奏ドラム画面.CChartScore[0].nMine == 0)
{
if (TJAPlayer3.stage演奏ドラム画面.CChartScore[0].nGood == 0)
this.Mode[0] = EndMode.StageDondaFullCombo;
@ -90,7 +90,7 @@ namespace TJAPlayer3
{
if (TJAPlayer3.stage演奏ドラム画面.actGauge.db現在のゲージ値[i] >= 80)
{
if (TJAPlayer3.stage演奏ドラム画面.CChartScore[i].nMiss == 0)
if (TJAPlayer3.stage演奏ドラム画面.CChartScore[i].nMiss == 0 && TJAPlayer3.stage演奏ドラム画面.CChartScore[i].nMine == 0)
//if (TJAPlayer3.stage演奏ドラム画面.nヒット数_Auto含まない.Drums.Miss == 0)
{
if (TJAPlayer3.stage演奏ドラム画面.CChartScore[i].nGood == 0)

View File

@ -239,10 +239,22 @@ namespace TJAPlayer3
}
else
{
songsnotesremain[NowShowingNumber] = TJAPlayer3.DTX.nDan_NotesCount[NowShowingNumber] - (TJAPlayer3.stage演奏ドラム画面.n良[NowShowingNumber] + TJAPlayer3.stage演奏ドラム画面.n可[NowShowingNumber] + TJAPlayer3.stage演奏ドラム画面.n不可[NowShowingNumber]);
notesremain = TJAPlayer3.DTX.nーツ数[3] - (TJAPlayer3.stage演奏ドラム画面.nヒット数_Auto含む.Drums.Perfect + TJAPlayer3.stage演奏ドラム画面.nヒット数_Auto含まない.Drums.Perfect) - (TJAPlayer3.stage演奏ドラム画面.nヒット数_Auto含む.Drums.Great + TJAPlayer3.stage演奏ドラム画面.nヒット数_Auto含まない.Drums.Great) - (TJAPlayer3.stage演奏ドラム画面.nヒット数_Auto含む.Drums.Miss + TJAPlayer3.stage演奏ドラム画面.nヒット数_Auto含まない.Drums.Miss);
songsnotesremain[NowShowingNumber] = TJAPlayer3.DTX.nDan_NotesCount[NowShowingNumber]
- (TJAPlayer3.stage演奏ドラム画面.n良[NowShowingNumber]
+ TJAPlayer3.stage演奏ドラム画面.n可[NowShowingNumber]
+ TJAPlayer3.stage演奏ドラム画面.n不可[NowShowingNumber]);
notesremain = TJAPlayer3.DTX.nーツ数[3]
- (TJAPlayer3.stage演奏ドラム画面.nヒット数_Auto含む.Drums.Perfect
+ TJAPlayer3.stage演奏ドラム画面.nヒット数_Auto含まない.Drums.Perfect)
- (TJAPlayer3.stage演奏ドラム画面.nヒット数_Auto含む.Drums.Great
+ TJAPlayer3.stage演奏ドラム画面.nヒット数_Auto含まない.Drums.Great)
- (TJAPlayer3.stage演奏ドラム画面.nヒット数_Auto含む.Drums.Miss
+ TJAPlayer3.stage演奏ドラム画面.nヒット数_Auto含まない.Drums.Miss);
// 残り音符数が0になったときに判断されるやつ
// Challenges that are judged when there are no remaining notes (janky ?)
if (ExamChange[i] ? songsnotesremain[NowShowingNumber] <= 0 : notesremain <= 0)
{
// 残り音符数ゼロ
@ -251,9 +263,6 @@ namespace TJAPlayer3
case Exam.Type.Gauge:
if (Challenge[i].Amount < Challenge[i].Value[0]) Challenge[i].SetReached(true);
break;
case Exam.Type.Score:
if (Challenge[i].Amount < Challenge[i].Value[0]) Challenge[i].SetReached(true);
break;
case Exam.Type.Accuracy:
if (Challenge[i].Amount < Challenge[i].Value[0]) Challenge[i].SetReached(true);
break;
@ -263,16 +272,19 @@ namespace TJAPlayer3
}
}
// 常に監視されるやつ。
// Challenges that are monitored in live
switch (Challenge[i].GetExamType())
{
case Exam.Type.JudgePerfect:
case Exam.Type.JudgeGood:
case Exam.Type.JudgeBad:
if (ExamChange[i] ? songsnotesremain[NowShowingNumber] < (Challenge[i].Value[0] - Challenge[i].Amount) : notesremain < (Challenge[i].Value[0] - Challenge[i].Amount)) Challenge[i].SetReached(true);
if (ExamChange[i]
? songsnotesremain[NowShowingNumber] < (Challenge[i].Value[0] - Challenge[i].Amount)
: notesremain < (Challenge[i].Value[0] - Challenge[i].Amount)) Challenge[i].SetReached(true);
break;
case Exam.Type.Combo:
if (notesremain + TJAPlayer3.stage演奏ドラム画面.actCombo.n現在のコンボ数.P1 < ((Challenge[i].Value[0])) && TJAPlayer3.stage演奏ドラム画面.actCombo.n現在のコンボ数.[0] < (Challenge[i].Value[0])) Challenge[i].SetReached(true);
if (notesremain + TJAPlayer3.stage演奏ドラム画面.actCombo.n現在のコンボ数.P1 < ((Challenge[i].Value[0]))
&& TJAPlayer3.stage演奏ドラム画面.actCombo.n現在のコンボ数.[0] < (Challenge[i].Value[0])) Challenge[i].SetReached(true);
break;
default:
break;
@ -282,18 +294,20 @@ namespace TJAPlayer3
// ( CDTXMania.DTX.listChip.Count > 0 ) ? CDTXMania.DTX.listChip[ CDTXMania.DTX.listChip.Count - 1 ].n発声時刻ms : 0;
// Bug here when charts have an extra roll ?
// Challenges that are judged when the song stops
if(!IsEnded[NowShowingNumber])
{
if (TJAPlayer3.DTX.listChip.Count <= 0) continue;
if (ExamChange[i] ? TJAPlayer3.DTX.pDan_LastChip[NowShowingNumber].n発声時刻ms <= TJAPlayer3.Timer.n現在時刻 : TJAPlayer3.DTX.listChip[TJAPlayer3.DTX.listChip.Count - 1].n発声時刻ms <= TJAPlayer3.Timer.n現在時刻)
if (ExamChange[i]
? TJAPlayer3.DTX.pDan_LastChip[NowShowingNumber].n発声時刻ms <= TJAPlayer3.Timer.n現在時刻
: TJAPlayer3.DTX.listChip[TJAPlayer3.DTX.listChip.Count - 1].n発声時刻ms <= TJAPlayer3.Timer.n現在時刻)
{
switch (Challenge[i].GetExamType())
{
case Exam.Type.Score:
case Exam.Type.Hit:
if (Challenge[i].Amount < Challenge[i].Value[0]) Challenge[i].SetReached(true);
break;
case Exam.Type.Roll:
case Exam.Type.Hit:
case Exam.Type.Roll: // Should be checked in live "If no remaining roll"
if (Challenge[i].Amount < Challenge[i].Value[0]) Challenge[i].SetReached(true);
break;
default:

View File

@ -411,7 +411,7 @@ namespace TJAPlayer3
{
TJAPlayer3.stage演奏ドラム画面.CChartScore[i].nGreat.ToString(),
TJAPlayer3.stage演奏ドラム画面.CChartScore[i].nGood.ToString(),
(TJAPlayer3.stage演奏ドラム画面.CChartScore[i].nMiss - TJAPlayer3.stage演奏ドラム画面.CChartScore[i].nMine).ToString(),
TJAPlayer3.stage演奏ドラム画面.CChartScore[i].nMiss.ToString(),
//TJAPlayer3.stage演奏ドラム画面.CChartScore[i].nRoll.ToString(),
TJAPlayer3.stage演奏ドラム画面.GetRoll(i).ToString(),
TJAPlayer3.stage演奏ドラム画面.actCombo.n現在のコンボ数.[i].ToString()

View File

@ -69,7 +69,7 @@ namespace TJAPlayer3
public int GetTowerScoreRank()
{
int tmpClear = 0;
double progress = CFloorManagement.LastRegisteredFloor / (double)TJAPlayer3.stage選曲.r確定された曲.arスコア[5]..nTotalFloor;
double progress = CFloorManagement.LastRegisteredFloor / ((double)TJAPlayer3.stage選曲.r確定された曲.arスコア[5]..nTotalFloor);
// Clear badges : 10% (E), 25% (D), 50% (C), 75% (B), Clear (A), FC (S), DFC (X)
bool[] conditions =
@ -79,8 +79,13 @@ namespace TJAPlayer3
progress >= 0.5,
progress >= 0.75,
progress == 1 && CFloorManagement.CurrentNumberOfLives > 0,
TJAPlayer3.stage演奏ドラム画面.CChartScore[0].nMiss == 0 && TJAPlayer3.stage演奏ドラム画面.CChartScore[0].nMine == 0,
TJAPlayer3.stage演奏ドラム画面.CChartScore[0].nGood == 0
/*
progress == 1 && CFloorManagement.CurrentNumberOfLives > 0,
this.st演奏記録.Drums.nMiss数 == 0,
this.st演奏記録.Drums.nGreat数 == 0
*/
};
for (int i = 0; i < conditions.Length; i++)
@ -172,7 +177,7 @@ namespace TJAPlayer3
{
var ccf = TJAPlayer3.stage演奏ドラム画面.CChartScore[p];
this.nクリア[p] = (ccf.nMiss == 0 && TJAPlayer3.stage演奏ドラム画面.actGauge.db現在のゲージ値[p] == 100)
this.nクリア[p] = (ccf.nMiss == 0 && ccf.nMine == 0 && TJAPlayer3.stage演奏ドラム画面.actGauge.db現在のゲージ値[p] == 100)
? ccf.nGood == 0
? 3 : 2
: TJAPlayer3.stage演奏ドラム画面.actGauge.db現在のゲージ値[p] >= 80
@ -287,26 +292,6 @@ namespace TJAPlayer3
#endregion
#region [Legacy]
/*
this.st演奏記録[0].nクリア[TJAPlayer3.stage選曲.n確定された曲の難易度[0]] = Math.Max(ini[0].stセクション[0].nクリア[TJAPlayer3.stage選曲.n確定された曲の難易度[0]], this.nクリア);
this.st演奏記録[0].nスコアランク[TJAPlayer3.stage選曲.n確定された曲の難易度[0]] = Math.Max(ini[0].stセクション[0].nスコアランク[TJAPlayer3.stage選曲.n確定された曲の難易度[0]], this.nスコアランク);
for (int i = 0; i < 5; i++)
{
if (i != TJAPlayer3.stage選曲.n確定された曲の難易度[0])
{
this.st演奏記録[0].nクリア[i] = ini[0].stセクション[0].nクリア[i];
this.st演奏記録[0].nスコアランク[i] = ini[0].stセクション[0].nスコアランク[i];
}
// ini.stセクション[0].nクリア[i] = this.st演奏記録[0].nクリア[i];
// ini.stセクション[0].nスコアランク[i] = this.st演奏記録[0].nスコアランク[i];
}
*/
#endregion
}
else if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan)
{
@ -396,68 +381,6 @@ namespace TJAPlayer3
#endregion
}
else
{
#region [Legacy]
/*
// 新記録スコアチェック
if ((this.st演奏記録[0].nスコア > ini[0].stセクション[0].nスコア) && !TJAPlayer3.ConfigIni.b太鼓パートAutoPlay)
{
this.b新記録スコア[0] = true;
ini[0].stセクション[0] = this.st演奏記録[0];
}
// Header hi-score
//if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Dan && TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Tower)
// if (this.st演奏記録[0].nスコア > ini[0].stセクション[0].nスコア)
// this.st演奏記録[0].nハイスコア[TJAPlayer3.stage選曲.n確定された曲の難易度[0]] = (int)st演奏記録[0].nスコア;
// 新記録スキルチェック
if (this.st演奏記録[0].db演奏型スキル値 > ini[0].stセクション[0].db演奏型スキル値)
{
this.b新記録スキル[0] = true;
ini[0].stセクション[0] = this.st演奏記録[0];
}
// ラストプレイ #23595 2011.1.9 ikanick
// オートじゃなければプレイ結果を書き込む
if (TJAPlayer3.ConfigIni.b太鼓パートAutoPlay == false)
{
ini[0].stセクション[0] = this.st演奏記録[0];
}
// #23596 10.11.16 add ikanick オートじゃないならクリア回数を1増やす
// 11.02.05 bオート to t更新条件を取得する use ikanick
bool[] b更新が必要か否か = new bool[3];
CScoreIni.t更新条件を取得する(out b更新が必要か否か[0], out b更新が必要か否か[1], out b更新が必要か否か[2]);
if (b更新が必要か否か[0])
{
ini[0].stファイル.ClearCountDrums++;
}
//---------------------------------------------------------------------/
if (TJAPlayer3.ConfigIni.bScoreIniを出力する)
ini[0].t書き出し(str[0]);
*/
#endregion
}
//---------------------
#endregion
@ -1593,7 +1516,7 @@ namespace TJAPlayer3
TJAPlayer3.stage演奏ドラム画面.actScore.Get(E楽器パート.DRUMS, 0).ToString(),
TJAPlayer3.stage演奏ドラム画面.CChartScore[0].nGreat.ToString(),
TJAPlayer3.stage演奏ドラム画面.CChartScore[0].nGood.ToString(),
(TJAPlayer3.stage演奏ドラム画面.CChartScore[0].nMiss - TJAPlayer3.stage演奏ドラム画面.CChartScore[0].nMine).ToString(),
TJAPlayer3.stage演奏ドラム画面.CChartScore[0].nMiss.ToString(),
TJAPlayer3.stage演奏ドラム画面.GetRoll(0).ToString(),
TJAPlayer3.stage演奏ドラム画面.actCombo.n現在のコンボ数.[0].ToString(),
totalHit.ToString()
@ -1652,7 +1575,7 @@ namespace TJAPlayer3
{
TJAPlayer3.stage演奏ドラム画面.n良[i].ToString(),
TJAPlayer3.stage演奏ドラム画面.n可[i].ToString(),
(TJAPlayer3.stage演奏ドラム画面.n不可[i] - TJAPlayer3.stage演奏ドラム画面.nMine[i]).ToString(),
TJAPlayer3.stage演奏ドラム画面.n不可[i].ToString(),
TJAPlayer3.stage演奏ドラム画面.n連打[i].ToString()
};

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

After

Width:  |  Height:  |  Size: 9.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

After

Width:  |  Height:  |  Size: 9.3 KiB