Feature 2 : DaniDoujou saves and Nijiiro ranks implemented, improved the DaniDoujou results screen (V0.3.4)
This commit is contained in:
parent
3d9d6e6be9
commit
57a1dd949b
@ -3,7 +3,7 @@ TJAPlayer3-Develop-ReWriteのフォーク, 太鼓の達人 ニジイロVerを切
|
||||
|
||||
# In progress
|
||||
|
||||
Ver. 0.3.3
|
||||
Ver. 0.3.4
|
||||
|
||||
Will update this readme later.
|
||||
|
||||
@ -21,7 +21,7 @@ Self-made assets will be distributed separately.
|
||||
|
||||
```
|
||||
☐ Implement 段位道場 results screen
|
||||
☐ Implement 段位道場 ini save file
|
||||
☑ Implement 段位道場 ini save file
|
||||
☑ Implement プチチャラ on menus
|
||||
☐ Coin earning and change the save file format
|
||||
☐ Implement 太鼓タワー charts (COURSE: 5) (Ex: https://www.youtube.com/watch?v=rtSe70X1QII)
|
||||
|
@ -40,6 +40,12 @@ Sound/Result/Donchan/Donchan_Miss.ogg => Sounds/ResultScreen/Donchan_Miss.ogg
|
||||
## Ver 0.4 ##
|
||||
|
||||
Sound/Dan/Dan_Result.ogg => Sounds/Dan/Dan_Result.ogg
|
||||
|
||||
Texture/Dan/Result/Rank.png => Graphics/7_DanResult/Rank.png (Resize 2004x334)
|
||||
Texture/Dan/Result/SongPanel_Base.png => Graphics/7_DanResult/SongPanel_Base.png (Resize 1280x720)
|
||||
Texture/Dan/Result/StatePanel_Base.png => Graphics/7_DanResult/StatePanel_Base.png (Resize 1280x720)
|
||||
Texture/Dan/Result/StatePanel_Main.png => Graphics/7_DanResult/StatePanel_Main.png (Resize 1280x720)
|
||||
Texture/Dan/Result/SongPanel_Main.png => Graphics/7_DanResult/SongPanel_Main.png (Resize 960x512)
|
||||
```
|
||||
|
||||
## Third step (Second booster)
|
||||
|
@ -771,10 +771,15 @@ namespace TJAPlayer3
|
||||
#region [8_DanResults]
|
||||
|
||||
DanResult_Background = TxC(DANRESULT + @"Background.png");
|
||||
DanResult_Rank = TxC(DANRESULT + @"Rank.png");
|
||||
DanResult_SongPanel_Base = TxC(DANRESULT + @"SongPanel_Base.png");
|
||||
DanResult_StatePanel_Base = TxC(DANRESULT + @"StatePanel_Base.png");
|
||||
DanResult_SongPanel_Main = TxC(DANRESULT + @"SongPanel_Main.png");
|
||||
DanResult_StatePanel_Main = TxC(DANRESULT + @"StatePanel_Main.png");
|
||||
|
||||
#endregion
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public void DisposeTexture()
|
||||
{
|
||||
@ -1116,7 +1121,12 @@ namespace TJAPlayer3
|
||||
|
||||
#region [8_DanResults]
|
||||
|
||||
public CTexture DanResult_Background;
|
||||
public CTexture DanResult_Background,
|
||||
DanResult_Rank,
|
||||
DanResult_SongPanel_Base,
|
||||
DanResult_StatePanel_Base,
|
||||
DanResult_SongPanel_Main,
|
||||
DanResult_StatePanel_Main;
|
||||
|
||||
#endregion
|
||||
|
||||
|
@ -104,8 +104,21 @@ namespace TJAPlayer3
|
||||
if (stバー情報[n現在の選択行].txBarCenter != null) stバー情報[n現在の選択行].txBarCenter?.t2D描画(TJAPlayer3.app.Device, Anime, 0);
|
||||
else TJAPlayer3.Tx.Dani_Bar_Center.t2D描画(TJAPlayer3.app.Device, Anime, 0);
|
||||
if (stバー情報[n現在の選択行].txDanPlate != null) stバー情報[n現在の選択行].txDanPlate.Opacity = 255;
|
||||
stバー情報[n現在の選択行].txDanPlate?.t2D中心基準描画(TJAPlayer3.app.Device, 173 + Anime, 301);
|
||||
stバー情報[n現在の選択行].txDanPlate?.t2D中心基準描画(TJAPlayer3.app.Device, 173 + Anime, 301);
|
||||
|
||||
#region [Goukaku plate]
|
||||
|
||||
int currentRank = Math.Min(stバー情報[n現在の選択行].clearGrade, 6) - 1;
|
||||
|
||||
if (currentRank >= 0)
|
||||
{
|
||||
TJAPlayer3.Tx.DanResult_Rank.vc拡大縮小倍率.X = 0.8f;
|
||||
TJAPlayer3.Tx.DanResult_Rank.vc拡大縮小倍率.Y = 0.8f;
|
||||
TJAPlayer3.Tx.DanResult_Rank.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, 173 + Anime, 422, new Rectangle(334 * currentRank, 0, 334, 334));
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
if (stバー情報[n現在の選択行].List_DanSongs[0].Dan_C[0] != null)
|
||||
tSoulDraw(370 + Anime, 462, stバー情報[n現在の選択行].List_DanSongs[0].Dan_C[0].Value[0].ToString());
|
||||
|
||||
@ -149,8 +162,21 @@ namespace TJAPlayer3
|
||||
else TJAPlayer3.Tx.Dani_Bar_Center.t2D描画(TJAPlayer3.app.Device, -1280 + Anime, 0);
|
||||
|
||||
if (stバー情報[n現在の選択行 - 1].txDanPlate != null) stバー情報[n現在の選択行 - 1].txDanPlate.Opacity = 255;
|
||||
stバー情報[n現在の選択行 - 1].txDanPlate?.t2D中心基準描画(TJAPlayer3.app.Device, -1280 + 173 + Anime, 301);
|
||||
|
||||
stバー情報[n現在の選択行 - 1].txDanPlate?.t2D中心基準描画(TJAPlayer3.app.Device, -1280 + 173 + Anime, 301);
|
||||
|
||||
#region [Goukaku plate]
|
||||
|
||||
currentRank = Math.Min(stバー情報[n現在の選択行 - 1].clearGrade, 6) - 1;
|
||||
|
||||
if (currentRank >= 0)
|
||||
{
|
||||
TJAPlayer3.Tx.DanResult_Rank.vc拡大縮小倍率.X = 0.8f;
|
||||
TJAPlayer3.Tx.DanResult_Rank.vc拡大縮小倍率.Y = 0.8f;
|
||||
TJAPlayer3.Tx.DanResult_Rank.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, -1280 + 173 + Anime, 422, new Rectangle(334 * currentRank, 0, 334, 334));
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
if (stバー情報[n現在の選択行 - 1].List_DanSongs[0].Dan_C[0] != null)
|
||||
tSoulDraw(-1280 + 370 + Anime, 462, stバー情報[n現在の選択行 - 1].List_DanSongs[0].Dan_C[0].Value[0].ToString());
|
||||
|
||||
@ -196,6 +222,19 @@ namespace TJAPlayer3
|
||||
if(stバー情報[n現在の選択行 + 1].txDanPlate != null) stバー情報[n現在の選択行 + 1].txDanPlate.Opacity = 255;
|
||||
stバー情報[n現在の選択行 + 1].txDanPlate?.t2D中心基準描画(TJAPlayer3.app.Device, 1280 + 173 + Anime, 301);
|
||||
|
||||
#region [Goukaku plate]
|
||||
|
||||
currentRank = Math.Min(stバー情報[n現在の選択行 + 1].clearGrade, 6) - 1;
|
||||
|
||||
if (currentRank >= 0)
|
||||
{
|
||||
TJAPlayer3.Tx.DanResult_Rank.vc拡大縮小倍率.X = 0.8f;
|
||||
TJAPlayer3.Tx.DanResult_Rank.vc拡大縮小倍率.Y = 0.8f;
|
||||
TJAPlayer3.Tx.DanResult_Rank.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, 1280 + 173 + Anime, 422, new Rectangle(334 * currentRank, 0, 334, 334));
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
if (stバー情報[n現在の選択行 + 1].List_DanSongs[0].Dan_C[0] != null)
|
||||
tSoulDraw(1280 + 370 + Anime, 462, stバー情報[n現在の選択行 + 1].List_DanSongs[0].Dan_C[0].Value[0].ToString());
|
||||
|
||||
@ -281,26 +320,28 @@ namespace TJAPlayer3
|
||||
public List<CDTX.DanSongs> List_DanSongs;
|
||||
public CTexture txBarCenter;
|
||||
public CTexture txDanPlate;
|
||||
public int clearGrade;
|
||||
}
|
||||
|
||||
private void tバーの初期化()
|
||||
{
|
||||
for(int i = 0; i < stバー情報.Length; i++)
|
||||
{
|
||||
var song = TJAPlayer3.Songs管理.list曲ルート_Dan[i];
|
||||
|
||||
stバー情報[i].ttkタイトル = new TitleTextureKey[TJAPlayer3.Songs管理.list曲ルート_Dan[i].DanSongs.Count];
|
||||
stバー情報[i].n曲難易度 = new int[TJAPlayer3.Songs管理.list曲ルート_Dan[i].DanSongs.Count];
|
||||
stバー情報[i].n曲レベル = new int[TJAPlayer3.Songs管理.list曲ルート_Dan[i].DanSongs.Count];
|
||||
for (int j = 0; j < TJAPlayer3.Songs管理.list曲ルート_Dan[i].DanSongs.Count; j++)
|
||||
{
|
||||
var song = TJAPlayer3.Songs管理.list曲ルート_Dan[i];
|
||||
|
||||
stバー情報[i].ttkタイトル[j] = new TitleTextureKey(song.DanSongs[j].bTitleShow ? "???" : song.DanSongs[j].Title, pfDanSong, Color.White, Color.Black, 700);
|
||||
stバー情報[i].n曲難易度[j] = song.DanSongs[j].Difficulty;
|
||||
stバー情報[i].n曲レベル[j] = song.DanSongs[j].Level;
|
||||
stバー情報[i].List_DanSongs = song.DanSongs;
|
||||
stバー情報[i].txBarCenter = TJAPlayer3.tテクスチャの生成(Path.GetDirectoryName(song.arスコア[6].ファイル情報.ファイルの絶対パス) + @"\Bar_Center.png");
|
||||
stバー情報[i].txDanPlate = TJAPlayer3.tテクスチャの生成(Path.GetDirectoryName(song.arスコア[6].ファイル情報.ファイルの絶対パス) + @"\Dan_Plate.png");
|
||||
}
|
||||
stバー情報[i].clearGrade = song.arスコア[6].譜面情報.nクリア[0];
|
||||
stバー情報[i].txBarCenter = TJAPlayer3.tテクスチャの生成(Path.GetDirectoryName(song.arスコア[6].ファイル情報.ファイルの絶対パス) + @"\Bar_Center.png");
|
||||
stバー情報[i].txDanPlate = TJAPlayer3.tテクスチャの生成(Path.GetDirectoryName(song.arスコア[6].ファイル情報.ファイルの絶対パス) + @"\Dan_Plate.png");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -165,6 +165,8 @@ namespace TJAPlayer3
|
||||
|
||||
if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Dan && TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Tower)
|
||||
{
|
||||
// Regular (Ensou game) Score and Score Rank saves
|
||||
|
||||
this.st演奏記録[0].nクリア[TJAPlayer3.stage選曲.n確定された曲の難易度[0]] = Math.Max(ini.stセクション[0].nクリア[TJAPlayer3.stage選曲.n確定された曲の難易度[0]], this.nクリア);
|
||||
this.st演奏記録[0].nスコアランク[TJAPlayer3.stage選曲.n確定された曲の難易度[0]] = Math.Max(ini.stセクション[0].nスコアランク[TJAPlayer3.stage選曲.n確定された曲の難易度[0]], this.nスコアランク);
|
||||
|
||||
@ -180,6 +182,45 @@ namespace TJAPlayer3
|
||||
ini.stセクション[0].nスコアランク[i] = this.st演奏記録[0].nスコアランク[i];
|
||||
}
|
||||
}
|
||||
else if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan)
|
||||
{
|
||||
/* == Specific format for DaniDoujou charts ==
|
||||
**
|
||||
** Higher is better, takes the Clear1 spot (Usually the spot allocated for Kantan Clear crowns)
|
||||
**
|
||||
** 0 (Fugoukaku, no insign)
|
||||
** Silver Iki (Clear) : 1 (Red Goukaku) / 2 (Gold Goukaku)
|
||||
** Gold Iki (Full Combo) : 3 (Red Goukaku) / 4 (Gold Goukaku)
|
||||
** Rainbow Iki (Donda Full Combo) : 5 (Red Goukaku) / 6 (Gold Goukaku)
|
||||
**
|
||||
*/
|
||||
|
||||
Exam.Status examStatus = TJAPlayer3.stage演奏ドラム画面.actDan.GetExamStatus(TJAPlayer3.stage結果.st演奏記録.Drums.Dan_C);
|
||||
|
||||
int clearValue = 0;
|
||||
|
||||
if (examStatus != Exam.Status.Failure)
|
||||
{
|
||||
// Red Goukaku
|
||||
clearValue += 1;
|
||||
|
||||
// Gold Goukaku
|
||||
if (examStatus == Exam.Status.Better_Success)
|
||||
clearValue += 1;
|
||||
|
||||
// Gold Iki
|
||||
if (this.st演奏記録.Drums.nMiss数 == 0)
|
||||
{
|
||||
clearValue += 2;
|
||||
|
||||
// Rainbow Iki
|
||||
if (this.st演奏記録.Drums.nGreat数 == 0)
|
||||
clearValue += 2;
|
||||
}
|
||||
}
|
||||
|
||||
this.st演奏記録[0].nクリア[0] = Math.Max(ini.stセクション[0].nクリア[0], clearValue);
|
||||
}
|
||||
|
||||
// 新記録スコアチェック
|
||||
if ((this.st演奏記録[0].nスコア > ini.stセクション[0].nスコア) && !TJAPlayer3.ConfigIni.b太鼓パートAutoPlay)
|
||||
@ -554,6 +595,7 @@ namespace TJAPlayer3
|
||||
}
|
||||
|
||||
TJAPlayer3.Tx.DanResult_Background.t2D描画(TJAPlayer3.app.Device, 0, 0);
|
||||
TJAPlayer3.Tx.DanResult_SongPanel_Base.t2D描画(TJAPlayer3.app.Device, 0, 0);
|
||||
|
||||
#region [DanPlate]
|
||||
|
||||
@ -563,29 +605,64 @@ namespace TJAPlayer3
|
||||
|
||||
#endregion
|
||||
|
||||
// Placeholder
|
||||
switch (TJAPlayer3.stage演奏ドラム画面.actDan.GetExamStatus(TJAPlayer3.stage結果.st演奏記録.Drums.Dan_C))
|
||||
{
|
||||
case Exam.Status.Failure:
|
||||
TJAPlayer3.Tx.Result_Dan?.t2D描画(TJAPlayer3.app.Device, -80, 180, new Rectangle(0, 0, TJAPlayer3.Skin.Result_Dan[0], TJAPlayer3.Skin.Result_Dan[1]));
|
||||
break;
|
||||
case Exam.Status.Success:
|
||||
TJAPlayer3.Tx.Result_Dan?.t2D描画(TJAPlayer3.app.Device, -80, 180, new Rectangle(TJAPlayer3.Skin.Result_Dan[0], 0, TJAPlayer3.Skin.Result_Dan[0], TJAPlayer3.Skin.Result_Dan[1]));
|
||||
break;
|
||||
case Exam.Status.Better_Success:
|
||||
TJAPlayer3.Tx.Result_Dan?.t2D描画(TJAPlayer3.app.Device, -80, 180, new Rectangle(TJAPlayer3.Skin.Result_Dan[0] * 2, 0, TJAPlayer3.Skin.Result_Dan[0], TJAPlayer3.Skin.Result_Dan[1]));
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
#region [Charts Individual Results]
|
||||
|
||||
for (int i = 0; i < TJAPlayer3.stage選曲.r確定された曲.DanSongs.Count; i++)
|
||||
{
|
||||
int baseX = 255;
|
||||
int baseY = 100;
|
||||
|
||||
TJAPlayer3.Tx.DanResult_SongPanel_Main.t2D描画(TJAPlayer3.app.Device, baseX, baseY + 183 * i, new Rectangle(0, 1 + 170 * Math.Min(i, 2), 960, 170));
|
||||
|
||||
|
||||
if (!b音声再生 && !TJAPlayer3.Skin.bgmDanResult.b再生中)
|
||||
{
|
||||
TJAPlayer3.Skin.bgmDanResult.t再生する();
|
||||
b音声再生 = true;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
/*
|
||||
int TmpTimer = Math.Max(0, (2 * 255) - (int)(this.actParameterPanel.ct全体進行.n現在の値 - MountainAppearValue - 255));
|
||||
|
||||
|
||||
TJAPlayer3.Tx.Result_Work[i].Opacity = TmpTimer / 2;
|
||||
TJAPlayer3.Tx.Result_Work[i].vc拡大縮小倍率.X = 0.6f;
|
||||
TJAPlayer3.Tx.Result_Work[i].vc拡大縮小倍率.Y = 0.6f;
|
||||
*/
|
||||
|
||||
// TJAPlayer3.act文字コンソール.tPrint(0, 0, C文字コンソール.Eフォント種別.白, ctMob.n現在の値.ToString());
|
||||
|
||||
#region [PassLogo]
|
||||
|
||||
Exam.Status examStatus = TJAPlayer3.stage演奏ドラム画面.actDan.GetExamStatus(TJAPlayer3.stage結果.st演奏記録.Drums.Dan_C);
|
||||
|
||||
if (examStatus != Exam.Status.Failure)
|
||||
{
|
||||
int successType = 0;
|
||||
|
||||
if (examStatus == Exam.Status.Better_Success)
|
||||
successType += 1;
|
||||
|
||||
int comboType = 0;
|
||||
if (this.st演奏記録.Drums.nMiss数 == 0)
|
||||
{
|
||||
comboType += 1;
|
||||
|
||||
if (this.st演奏記録.Drums.nGreat数 == 0)
|
||||
comboType += 1;
|
||||
}
|
||||
|
||||
TJAPlayer3.Tx.DanResult_Rank.vc拡大縮小倍率.X = 1f;
|
||||
TJAPlayer3.Tx.DanResult_Rank.vc拡大縮小倍率.Y = 1f;
|
||||
TJAPlayer3.Tx.DanResult_Rank.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, 130, 380, new Rectangle(334 * (2 * comboType + successType), 0, 334, 334));
|
||||
|
||||
if (!b音声再生 && !TJAPlayer3.Skin.bgmDanResult.b再生中)
|
||||
{
|
||||
TJAPlayer3.Skin.bgmDanResult.t再生する();
|
||||
b音声再生 = true;
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
@ -741,6 +818,35 @@ namespace TJAPlayer3
|
||||
if (cスコア.譜面情報.nスコアランク[TJAPlayer3.stage選曲.n確定された曲の難易度[0]] < nスコアランク)
|
||||
cスコア.譜面情報.nスコアランク[TJAPlayer3.stage選曲.n確定された曲の難易度[0]] = this.nスコアランク;
|
||||
}
|
||||
else if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan)
|
||||
{
|
||||
Cスコア cスコア = TJAPlayer3.stage選曲.r確定されたスコア;
|
||||
|
||||
Exam.Status examStatus = TJAPlayer3.stage演奏ドラム画面.actDan.GetExamStatus(TJAPlayer3.stage結果.st演奏記録.Drums.Dan_C);
|
||||
|
||||
int clearValue = 0;
|
||||
|
||||
if (examStatus != Exam.Status.Failure)
|
||||
{
|
||||
// Red Goukaku
|
||||
clearValue += 1;
|
||||
|
||||
// Gold Goukaku
|
||||
if (examStatus == Exam.Status.Better_Success)
|
||||
clearValue += 1;
|
||||
|
||||
// Gold Iki
|
||||
if (this.st演奏記録.Drums.nMiss数 == 0)
|
||||
{
|
||||
clearValue += 2;
|
||||
|
||||
// Rainbow Iki
|
||||
if (this.st演奏記録.Drums.nGreat数 == 0)
|
||||
clearValue += 2;
|
||||
}
|
||||
}
|
||||
cスコア.譜面情報.nクリア[0] = Math.Max(cスコア.譜面情報.nクリア[0], clearValue);
|
||||
}
|
||||
}
|
||||
//---------------------
|
||||
#endregion
|
||||
|
@ -1 +1 @@
|
||||
Subproject commit e01331dafed845940b747a9e7432acc07dc88f97
|
||||
Subproject commit 36df7a30586d91bd23e8110dd2c3d79714ba8cd5
|
Loading…
Reference in New Issue
Block a user