From f5229b6a81617379f92eb54fb58663122362578a Mon Sep 17 00:00:00 2001 From: 0aubsq <0aubsq@gmail.com> Date: Fri, 12 Nov 2021 09:55:57 +0100 Subject: [PATCH] Dan customisation update part 1 --- Documentation/I18N/DictionnaryIndexes.md | 12 ++ TJAPlayer3/I18N/CLang_en.cs | 10 ++ TJAPlayer3/I18N/CLang_fr.cs | 10 ++ TJAPlayer3/I18N/CLang_jp.cs | 10 ++ TJAPlayer3/Stages/01.StartUp/TextureLoader.cs | 11 ++ .../05.DaniSelect/CActSelect段位リスト.cs | 132 +++++++++++++++--- .../Stages/05.DaniSelect/CStage段位選択.cs | 1 + 7 files changed, 167 insertions(+), 19 deletions(-) diff --git a/Documentation/I18N/DictionnaryIndexes.md b/Documentation/I18N/DictionnaryIndexes.md index b9a6d2ce..cf948673 100644 --- a/Documentation/I18N/DictionnaryIndexes.md +++ b/Documentation/I18N/DictionnaryIndexes.md @@ -47,4 +47,16 @@ 1002 : Points accronym (1 character) 1003 : Score +# Dan exam types (0101X - 0102X) + +1010 : Soul gauge +1011 : Perfect count +1012 : Good count +1013 : Bad count +1014 : Score +1015 : Rolls count +1016 : Notes hit count +1017 : Combo +1018 : Accuracy + ``` \ No newline at end of file diff --git a/TJAPlayer3/I18N/CLang_en.cs b/TJAPlayer3/I18N/CLang_en.cs index 3642fbfe..14c519ba 100644 --- a/TJAPlayer3/I18N/CLang_en.cs +++ b/TJAPlayer3/I18N/CLang_en.cs @@ -67,6 +67,16 @@ namespace TJAPlayer3 [1001] = "F", [1002] = "P", [1003] = "Score", + + [1010] = "Soul gauge", + [1011] = "Perfect count", + [1012] = "Good count", + [1013] = "Bad count", + [1014] = "Score", + [1015] = "Rolls count", + [1016] = "Hit count", + [1017] = "Combo", + [1018] = "Accuracy", }; } } diff --git a/TJAPlayer3/I18N/CLang_fr.cs b/TJAPlayer3/I18N/CLang_fr.cs index 42575e89..673b8a7c 100644 --- a/TJAPlayer3/I18N/CLang_fr.cs +++ b/TJAPlayer3/I18N/CLang_fr.cs @@ -67,6 +67,16 @@ namespace TJAPlayer3 [1001] = "", [1002] = "P", [1003] = "Score", + + [1010] = "Jauge d'âme", + [1011] = "Nombre de Parfait", + [1012] = "Nombre de Bon", + [1013] = "Nombre de Mauvais", + [1014] = "Score", + [1015] = "Frappes successives", + [1016] = "Nombre de frappes", + [1017] = "Combo", + [1018] = "Précision", }; } } \ No newline at end of file diff --git a/TJAPlayer3/I18N/CLang_jp.cs b/TJAPlayer3/I18N/CLang_jp.cs index ad9c5db6..3ac81c2f 100644 --- a/TJAPlayer3/I18N/CLang_jp.cs +++ b/TJAPlayer3/I18N/CLang_jp.cs @@ -68,6 +68,16 @@ namespace TJAPlayer3 [1001] = "階", [1002] = "点", [1003] = "スコア", + + [1010] = "魂ゲージ", + [1011] = "良の数", + [1012] = "可の数", + [1013] = "不可の数", + [1014] = "スコア", + [1015] = "連打数", + [1016] = "叩けた数", + [1017] = "コンボ数", + [1018] = "精度", }; } } diff --git a/TJAPlayer3/Stages/01.StartUp/TextureLoader.cs b/TJAPlayer3/Stages/01.StartUp/TextureLoader.cs index d8d82cb2..d3f1920d 100644 --- a/TJAPlayer3/Stages/01.StartUp/TextureLoader.cs +++ b/TJAPlayer3/Stages/01.StartUp/TextureLoader.cs @@ -270,16 +270,23 @@ namespace TJAPlayer3 Dani_Dan_In = TxC(DANISELECT + "Dan_In.png"); Dani_Dan_Text = TxC(DANISELECT + "Dan_Text.png"); + Dani_DanPlates = TxC(DANISELECT + "DanPlates.png"); + Dani_DanSides = TxC(DANISELECT + "DanSides.png"); + + for (int i = 0; i < Dani_Bloc.Length; i++) + Dani_Bloc[i] = TxC(DANISELECT + "Bloc" + i.ToString() + ".png"); #endregion #region 4_読み込み画面 + SongLoading_Plate = TxC(SONGLOADING + @"Plate.png"); SongLoading_Bg = TxC(SONGLOADING + @"Bg.png"); SongLoading_BgWait = TxC(SONGLOADING + @"Bg_Wait.png"); SongLoading_Chara = TxC(SONGLOADING + @"Chara.png"); SongLoading_Fade = TxC(SONGLOADING + @"Fade.png"); SongLoading_Bg_Dan = TxC(SONGLOADING + @"Bg_Dan.png"); + #endregion #region 5_演奏画面 @@ -1022,6 +1029,10 @@ namespace TJAPlayer3 public CTexture Dani_Dan_In; public CTexture Dani_Dan_Text; + public CTexture Dani_DanPlates; + public CTexture Dani_DanSides; + public CTexture[] Dani_Bloc = new CTexture[3]; + #endregion #region 4_読み込み画面 diff --git a/TJAPlayer3/Stages/05.DaniSelect/CActSelect段位リスト.cs b/TJAPlayer3/Stages/05.DaniSelect/CActSelect段位リスト.cs index 21fa1c52..ccded539 100644 --- a/TJAPlayer3/Stages/05.DaniSelect/CActSelect段位リスト.cs +++ b/TJAPlayer3/Stages/05.DaniSelect/CActSelect段位リスト.cs @@ -56,9 +56,21 @@ namespace TJAPlayer3 pfDanSong = new CPrivateFastFont(new FontFamily(TJAPlayer3.ConfigIni.FontName), 24); else pfDanSong = new CPrivateFastFont(new FontFamily("MS UI Gothic"), 16); - - //一応チェックしておく。 - if(TJAPlayer3.Songs管理.list曲ルート_Dan.Count > 0) + + if (!string.IsNullOrEmpty(TJAPlayer3.ConfigIni.FontName)) + this.pfExamFont = new CPrivateFastFont(new FontFamily(TJAPlayer3.ConfigIni.FontName), 13); + else + this.pfExamFont = new CPrivateFastFont(new FontFamily("MS UI Gothic"), 13); + + this.ttkExams = new TitleTextureKey[(int)Exam.Type.Accuracy + 1]; + for (int i = 0; i < this.ttkExams.Length; i++) + { + this.ttkExams[i] = new TitleTextureKey(CLangManager.LangInstance.GetString(1010 + i), this.pfExamFont, Color.White, Color.SaddleBrown, 1000); + } + + + //一応チェックしておく。 + if (TJAPlayer3.Songs管理.list曲ルート_Dan.Count > 0) this.tバーの初期化(); base.On活性化(); @@ -232,6 +244,9 @@ namespace TJAPlayer3 private CPrivateFastFont pfDanSong; + public CPrivateFastFont pfExamFont; + public TitleTextureKey[] ttkExams; + private CStage選曲.STNumber[] stLevel = new CStage選曲.STNumber[10]; private CStage選曲.STNumber[] stSoulNumber = new CStage選曲.STNumber[10]; private CStage選曲.STNumber[] stExamNumber = new CStage選曲.STNumber[10]; @@ -261,11 +276,58 @@ namespace TJAPlayer3 #region [Center bar and Dan plate] - if (stバー情報[currentSong].txBarCenter != null) stバー情報[currentSong].txBarCenter?.t2D描画(TJAPlayer3.app.Device, scroll + Anime, 0); - else TJAPlayer3.Tx.Dani_Bar_Center.t2D描画(TJAPlayer3.app.Device, scroll + Anime, 0); + int danTick = stバー情報[currentSong].nDanTick; + Color danTickColor = stバー情報[currentSong].cDanTickColor; - if (stバー情報[currentSong].txDanPlate != null) stバー情報[currentSong].txDanPlate.Opacity = 255; - stバー情報[currentSong].txDanPlate?.t2D中心基準描画(TJAPlayer3.app.Device, scroll + 173 + Anime, 301); + // Use the given bar center if provided, else use a default one + if (stバー情報[currentSong].txBarCenter != null) + { + stバー情報[currentSong].txBarCenter?.t2D描画(TJAPlayer3.app.Device, scroll + Anime, 0); + } + else + { + int unit = TJAPlayer3.Tx.Dani_DanSides.szテクスチャサイズ.Width / 6; + TJAPlayer3.Tx.Dani_DanSides.color4 = danTickColor; + + TJAPlayer3.Tx.Dani_Bar_Center.t2D描画(TJAPlayer3.app.Device, scroll + Anime, 0); + + // Bar sides + TJAPlayer3.Tx.Dani_DanSides.t2D描画(TJAPlayer3.app.Device, (int)(scroll + Anime + 243), 143, new Rectangle( + unit * danTick, + 0, + unit, + TJAPlayer3.Tx.Dani_DanSides.szテクスチャサイズ.Height + )); + + TJAPlayer3.Tx.Dani_DanSides.t2D左右反転描画(TJAPlayer3.app.Device, (int)(scroll + Anime + 1199), 143, new Rectangle( + unit * danTick, + 0, + unit, + TJAPlayer3.Tx.Dani_DanSides.szテクスチャサイズ.Height + )); + } + + // Use the given DanPlate if provided, else use a default one + if (stバー情報[currentSong].txDanPlate != null) + { + stバー情報[currentSong].txDanPlate.Opacity = 255; + stバー情報[currentSong].txDanPlate?.t2D中心基準描画(TJAPlayer3.app.Device, scroll + 173 + Anime, 301); + } + else + { + int unit = TJAPlayer3.Tx.Dani_DanPlates.szテクスチャサイズ.Width / 6; + + if (TJAPlayer3.Tx.Dani_DanPlates != null) { + TJAPlayer3.Tx.Dani_DanPlates.Opacity = 255; + TJAPlayer3.Tx.Dani_DanPlates.color4 = danTickColor; + } + TJAPlayer3.Tx.Dani_DanPlates?.t2D中心基準描画(TJAPlayer3.app.Device, scroll + 173 + Anime, 301, new Rectangle( + unit * danTick, + 0, + unit, + TJAPlayer3.Tx.Dani_DanPlates.szテクスチャサイズ.Height + )); + } #endregion @@ -284,9 +346,13 @@ namespace TJAPlayer3 #region [Soul gauge condition] + TJAPlayer3.Tx.Dani_Bloc[2]?.t2D描画(TJAPlayer3.app.Device, scroll + 291 + Anime, 412); + if (stバー情報[currentSong].List_DanSongs[0].Dan_C[0] != null) tSoulDraw(scroll + 370 + Anime, 462, stバー情報[currentSong].List_DanSongs[0].Dan_C[0].Value[0].ToString()); + TJAPlayer3.stage選曲.act曲リスト.ResolveTitleTexture(this.ttkExams[0]).t2D下中央基準描画(TJAPlayer3.app.Device, (int)(scroll + 396 + Anime), 452); + #endregion #region [Song information] @@ -350,16 +416,6 @@ namespace TJAPlayer3 #endregion - #region [Exam type sign] - - if (stバー情報[currentSong].List_DanSongs[0].Dan_C[j] != null) - { - TJAPlayer3.Tx.DanC_ExamType.Opacity = opacity; - TJAPlayer3.Tx.DanC_ExamType?.t2D描画(TJAPlayer3.app.Device, scroll + 515 + Anime, 412 + index * 88, new Rectangle(0, TJAPlayer3.Skin.Game_DanC_ExamType_Size[1] * (int)stバー情報[currentSong].List_DanSongs[0].Dan_C[j].GetExamType(), TJAPlayer3.Skin.Game_DanC_ExamType_Size[0], TJAPlayer3.Skin.Game_DanC_ExamType_Size[1])); - } - - #endregion - #region [Exam value (individual included)] for (int i = 0; i < stバー情報[currentSong].List_DanSongs.Count; i++) //曲ごとのループ(魂ゲージを除く) 横(x) @@ -368,16 +424,54 @@ namespace TJAPlayer3 { TJAPlayer3.Tx.Dani_Exam_Number.Opacity = opacity; - if (stバー情報[currentSong].List_DanSongs[stバー情報[currentSong].List_DanSongs.Count - 1].Dan_C[j] != null) //個別の条件がありますよー + if (stバー情報[currentSong].List_DanSongs[stバー情報[currentSong].List_DanSongs.Count - 1].Dan_C[j] != null) { + //個別の条件がありますよー + + if (i == 0) + { + if (TJAPlayer3.Tx.Dani_Bloc[1] != null) + TJAPlayer3.Tx.Dani_Bloc[1].Opacity = opacity; + TJAPlayer3.Tx.Dani_Bloc[1]?.t2D描画(TJAPlayer3.app.Device, + scroll + Anime + 515, + 412 + 88 * index); + } + tExamDraw(scroll + 590 + Anime + i * 220, 455 + index * 88, stバー情報[currentSong].List_DanSongs[i].Dan_C[j].Value[0].ToString(), stバー情報[currentSong].List_DanSongs[i].Dan_C[j].GetExamRange()); - else //全体の条件ですよー + } + else + { + //全体の条件ですよー + + if (i == 0) + { + if (TJAPlayer3.Tx.Dani_Bloc[0] != null) + TJAPlayer3.Tx.Dani_Bloc[0].Opacity = opacity; + TJAPlayer3.Tx.Dani_Bloc[0]?.t2D描画(TJAPlayer3.app.Device, + scroll + Anime + 515, + 412 + 88 * index); + } + tExamDraw(scroll + 590 + Anime, 455 + index * 88, stバー情報[currentSong].List_DanSongs[0].Dan_C[j].Value[0].ToString(), stバー情報[currentSong].List_DanSongs[0].Dan_C[j].GetExamRange()); + } + TJAPlayer3.Tx.Dani_Exam_Number.Opacity = 255; } } #endregion + + #region [Exam title] + + if (stバー情報[currentSong].List_DanSongs[0].Dan_C[j] != null) + { + CTexture tmpTex = TJAPlayer3.stage選曲.act曲リスト.ResolveTitleTexture(this.ttkExams[(int)stバー情報[currentSong].List_DanSongs[0].Dan_C[j].GetExamType()]); + + tmpTex.Opacity = opacity; + tmpTex.t2D下中央基準描画(TJAPlayer3.app.Device, (int)(scroll + 614 + Anime), 452 + index * 88); + } + + #endregion } #endregion diff --git a/TJAPlayer3/Stages/05.DaniSelect/CStage段位選択.cs b/TJAPlayer3/Stages/05.DaniSelect/CStage段位選択.cs index 8129919c..a8cb6c66 100644 --- a/TJAPlayer3/Stages/05.DaniSelect/CStage段位選択.cs +++ b/TJAPlayer3/Stages/05.DaniSelect/CStage段位選択.cs @@ -6,6 +6,7 @@ using System.Threading.Tasks; using System.Drawing; using FDK; using SlimDX.DirectInput; +using static TJAPlayer3.CActSelect曲リスト; namespace TJAPlayer3 {