1
0
mirror of synced 2025-01-18 17:14:07 +01:00

Better score calculation for dan charts, tried something for branches in dans but doesn't work yet

This commit is contained in:
0aubsq 2022-01-03 19:18:39 +01:00
parent 254c4eb463
commit eb3f67e0a3
4 changed files with 62 additions and 7 deletions

View File

@ -1246,14 +1246,20 @@ namespace TJAPlayer3
private bool bMOVIEOFFSETの値がマイナスである = false;
private double dbNowBPM = 120.0;
private int nDELAY = 0;
public bool[] bHasBranch = new bool[(int)Difficulty.Total] { false, false, false, false, false, false, false };
public bool[] bHasBranchDan = new bool[1] { false };
//分岐関連
private ECourse n現在のコース = ECourse.eNormal;
private bool b最初の分岐である;
public int[] nーツ数 = new int[4]; //3:共通
public int[] nDan_NotesCount = new int[1];
// public int[] nDan_BallonCount = new int[1];
public int[] nーツ数_Branch = new int[4]; //
public CChip[] pDan_LastChip;
public int[] n風船数 = new int[4]; //02:各コース 3:共通
@ -4073,6 +4079,9 @@ namespace TJAPlayer3
this.listWAV[1].strファイル名 = "";
Array.Resize(ref bHasBranchDan, List_DanSongs.Count);
bHasBranchDan[bHasBranchDan.Length - 1] = false;
// チップを配置。
this.listChip.Add(nextSongnextSongChip);
@ -4504,13 +4513,20 @@ namespace TJAPlayer3
{
//風船はこのままでも機能しているので何もしない.
if (this.b最初の分岐である == false)
this.n風船数[(int)this.n現在のコース]++;
else
this.n風船数[3]++;
if (this.b最初の分岐である == false)
{
this.n風船数[(int)this.n現在のコース]++;
}
else
{
this.n風船数[3]++;
}
}
Array.Resize(ref nDan_NotesCount, nDan_NotesCount.Length + 1);
// Array.Resize(ref nDan_BallonCount, nDan_BallonCount.Length + 1);
this.listChip.Add(chip);
if(IsEndedBranching)
@ -4804,6 +4820,11 @@ namespace TJAPlayer3
//本来はヘッダ命令ではありませんが、難易度ごとに違う項目なのでここで読み込ませます。
//Lengthのチェックをされる前ににif文を入れています。
this.bHasBranch[this.n参照中の難易度] = true;
if (this.n参照中の難易度 == (int)Difficulty.Dan)
{
this.bHasBranchDan[this.bHasBranchDan.Length - 1] = true;
}
}
//まずは「:」でSplitして割り当てる。

View File

@ -1969,7 +1969,8 @@ namespace TJAPlayer3
break;
}
if (TJAPlayer3.Tx.SongSelect_Branch_Text != null && TJAPlayer3.stage選曲.r現在選択中のスコア..b譜面分岐[TJAPlayer3.stage選曲.n現在選択中の曲の難易度])
if (TJAPlayer3.Tx.SongSelect_Branch_Text != null
&& TJAPlayer3.stage選曲.r現在選択中のスコア..b譜面分岐[TJAPlayer3.stage選曲.n現在選択中の曲の難易度])
TJAPlayer3.Tx.SongSelect_Branch_Text.t2D描画(TJAPlayer3.app.Device, 483, TJAPlayer3.Skin.SongSelect_Overall_Y + 21);
}

View File

@ -374,6 +374,27 @@ namespace TJAPlayer3
this.ListDan_Number = 0;
this.IsDanFailed = false;
}
public void ftDanReSetScoreNiji(int songNotes, int ballons)
{
if (songNotes == 0 && ballons == 0)
{
nAddScoreNiji[0] = 1000000;
}
else
{
nAddScoreNiji[0] = (double)Math.Ceiling((decimal)(1000000 - (ballons * 100)) / songNotes / 10) * 10;
}
}
public void ftDanReSetBranches(bool hasBranches)
{
this.tBranchReset(0);
TJAPlayer3.stage選曲.r確定されたスコア..b譜面分岐[(int)Difficulty.Dan] = hasBranches;
}
public override void On非活性化()
{
this.bgmlength = 1;

View File

@ -76,11 +76,20 @@ namespace TJAPlayer3
}
ScreenPoint = new double[] { TJAPlayer3.Skin.nScrollFieldBGX[0] - TJAPlayer3.Tx.DanC_Screen.szテクスチャサイズ.Width / 2, 1280 };
TJAPlayer3.stage演奏ドラム画面.ReSetScore(TJAPlayer3.DTX.List_DanSongs[NowShowingNumber].ScoreInit, TJAPlayer3.DTX.List_DanSongs[NowShowingNumber].ScoreDiff);
TJAPlayer3.stage演奏ドラム画面.ReSetScore(TJAPlayer3.DTX.List_DanSongs[NowShowingNumber].ScoreInit, TJAPlayer3.DTX.List_DanSongs[NowShowingNumber].ScoreDiff);
TJAPlayer3.stage演奏ドラム画面.ftDanReSetScoreNiji(TJAPlayer3.DTX.nDan_NotesCount[NowShowingNumber], 0);
TJAPlayer3.stage演奏ドラム画面.ftDanReSetBranches(TJAPlayer3.DTX.bHasBranchDan[NowShowingNumber]);
IsAnimating = true;
//段位道場
//TJAPlayer3.stage演奏ドラム画面.actPanel.SetPanelString(TJAPlayer3.DTX.List_DanSongs[NowShowingNumber].Title, TJAPlayer3.DTX.List_DanSongs[NowShowingNumber].Genre, 1 + NowShowingNumber + "曲目");
TJAPlayer3.stage演奏ドラム画面.actPanel.SetPanelString(TJAPlayer3.DTX.List_DanSongs[NowShowingNumber].Title, "段位道場", 1 + NowShowingNumber + "曲目");
TJAPlayer3.stage演奏ドラム画面.actPanel.SetPanelString(TJAPlayer3.DTX.List_DanSongs[NowShowingNumber].Title,
CLangManager.LangInstance.GetString(101),
1 + NowShowingNumber + "曲目");
if (number == 0) Sound_Section_First?.t再生を開始する();
else Sound_Section?.t再生を開始する();
}
@ -261,6 +270,8 @@ 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 ?
if(!IsEnded[NowShowingNumber])
{
if (TJAPlayer3.DTX.listChip.Count <= 0) continue;
@ -501,6 +512,7 @@ namespace TJAPlayer3
return base.On進行描画();
}
// Regular ingame exams draw
public void DrawExam(Dan_C[] dan_C)
{
int count = 0;