From da0e1dc03abe016435233c17eb78544918d209ae Mon Sep 17 00:00:00 2001 From: Takkkom <76614532+Takkkom@users.noreply.github.com> Date: Sat, 25 Feb 2023 16:00:44 +0900 Subject: [PATCH] =?UTF-8?q?=E6=BC=94=E5=A5=8F=E7=94=BB=E9=9D=A2=E3=81=A8?= =?UTF-8?q?=E7=B5=90=E6=9E=9C=E7=94=BB=E9=9D=A2=E3=81=AEDanIcon=E3=81=AB?= =?UTF-8?q?=E5=AF=BE=E5=BF=9C=20(#436)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- TJAPlayer3/Common/CSkin.cs | 33 +++++++++++++++++- TJAPlayer3/Stages/01.StartUp/TextureLoader.cs | 2 ++ .../05.DaniSelect/CActSelect段位リスト.cs | 17 +++++++-- TJAPlayer3/Stages/07.Game/Taiko/Dan_Cert.cs | 24 +++++++++++-- TJAPlayer3/Stages/08.Result/CStage結果.cs | 2 ++ Test/System/SimpleStyle/DanResultConfig.ini | 5 +++ Test/System/SimpleStyle/GameConfig.ini | 5 +++ .../Graphics/3_DaniSelect/DanIcon_Fade.png | Bin 0 -> 3071 bytes 8 files changed, 82 insertions(+), 6 deletions(-) create mode 100644 Test/System/SimpleStyle/Graphics/3_DaniSelect/DanIcon_Fade.png diff --git a/TJAPlayer3/Common/CSkin.cs b/TJAPlayer3/Common/CSkin.cs index dc01e2c4..a576f86b 100644 --- a/TJAPlayer3/Common/CSkin.cs +++ b/TJAPlayer3/Common/CSkin.cs @@ -5272,6 +5272,14 @@ namespace TJAPlayer3 { Game_DanC_Dan_Plate = strParam.Split(',').Select(int.Parse).ToArray(); } + else if (strCommand == nameof(Game_DanC_DanIcon_Offset)) + { + Game_DanC_DanIcon_Offset = strParam.Split(',').Select(int.Parse).ToArray(); + } + else if (strCommand == nameof(Game_DanC_DanIcon_Offset_Mini)) + { + Game_DanC_DanIcon_Offset_Mini = strParam.Split(',').Select(int.Parse).ToArray(); + } else if (strCommand == nameof(Game_DanC_Title_X)) { Game_DanC_Title_X = strParam.Split(',').Select(int.Parse).ToArray(); @@ -6881,6 +6889,22 @@ namespace TJAPlayer3 DanResult_DanTitles_Y[i] = int.Parse(strSplit[i]); } } + else if (strCommand == "DanResult_DanIcon_X") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 3; i++) + { + DanResult_DanIcon_X[i] = int.Parse(strSplit[i]); + } + } + else if (strCommand == "DanResult_DanIcon_Y") + { + string[] strSplit = strParam.Split(','); + for (int i = 0; i < 3; i++) + { + DanResult_DanIcon_Y[i] = int.Parse(strSplit[i]); + } + } else if (strCommand == "DanResult_Rank") { string[] strSplit = strParam.Split(','); @@ -8669,12 +8693,16 @@ namespace TJAPlayer3 public int[] Game_DanC_SmallBase_Offset_X = new int[] { 745, 410 }; public int[] Game_DanC_SmallBase_Offset_Y = new int[] { 119, 119 }; public int[] Game_DanC_Number_XY = new int[] { 214, 67 }; - public int[] Game_DanC_Dan_Plate = new int[] { 149, 416 }; + public int[] Game_DanC_Dan_Plate = new int[] { 149, 416 }; + + public int[] Game_DanC_DanIcon_Offset = new int[] { 44, 57 }; + public int[] Game_DanC_DanIcon_Offset_Mini = new int[] { -19, 11 }; public int[] Game_DanC_Title_X = new int[] { 806, 806 }; public int[] Game_DanC_Title_Y = new int[] { 257, 237 }; public int[] Game_DanC_SubTitle = new int[] { 806, 277 }; + public int Game_DanC_Title_Size = 30; public int Game_DanC_SubTitle_Size = 22; public int Game_DanC_ExamFont_Size = 14; @@ -9015,6 +9043,9 @@ namespace TJAPlayer3 public int[] DanResult_DanTitles_X = new int[] { 401, 401, 401 }; public int[] DanResult_DanTitles_Y = new int[] { 139, 322, 505 }; + public int[] DanResult_DanIcon_X = new int[] { 315, 315, 315 }; + public int[] DanResult_DanIcon_Y = new int[] { 158, 342, 526 }; + public int[] DanResult_Rank = new int[] { 130, 380 }; public int DanResult_Font_DanTitles_Size = 24; diff --git a/TJAPlayer3/Stages/01.StartUp/TextureLoader.cs b/TJAPlayer3/Stages/01.StartUp/TextureLoader.cs index 92ed84b3..3daae50b 100644 --- a/TJAPlayer3/Stages/01.StartUp/TextureLoader.cs +++ b/TJAPlayer3/Stages/01.StartUp/TextureLoader.cs @@ -339,6 +339,7 @@ namespace TJAPlayer3 Dani_DanPlates = TxC(DANISELECT + "DanPlates.png"); Dani_DanIcon = TxC(DANISELECT + "DanIcon.png"); + Dani_DanIcon_Fade = TxC(DANISELECT + "DanIcon_Fade.png"); Dani_DanSides = TxC(DANISELECT + "DanSides.png"); for (int i = 0; i < Dani_Bloc.Length; i++) @@ -1967,6 +1968,7 @@ namespace TJAPlayer3 public CTexture Dani_DanPlates; public CTexture Dani_DanIcon; + public CTexture Dani_DanIcon_Fade; public CTexture Dani_DanSides; public CTexture[] Dani_Bloc = new CTexture[4]; diff --git a/TJAPlayer3/Stages/05.DaniSelect/CActSelect段位リスト.cs b/TJAPlayer3/Stages/05.DaniSelect/CActSelect段位リスト.cs index 6352ef23..5fa2e04a 100644 --- a/TJAPlayer3/Stages/05.DaniSelect/CActSelect段位リスト.cs +++ b/TJAPlayer3/Stages/05.DaniSelect/CActSelect段位リスト.cs @@ -338,7 +338,7 @@ namespace TJAPlayer3 } } - public static void tDisplayDanIcon(int count, float x, float y, int opacity) + public static void tDisplayDanIcon(int count, float x, float y, int opacity, float scale, bool showFade = false) { if (pfDanIconTitle == null) pfDanIconTitle = new CPrivateFastFont(new FontFamily(TJAPlayer3.ConfigIni.FontName), TJAPlayer3.Skin.DaniSelect_DanIconTitle_Size); @@ -359,13 +359,24 @@ namespace TJAPlayer3 TitleTextureKey ttkTmp = new TitleTextureKey(count.ToString() + ex, pfDanIconTitle, Color.White, Color.Black, 1000); + if (showFade) + { + TJAPlayer3.Tx.Dani_DanIcon_Fade.vc拡大縮小倍率 = new SharpDX.Vector3(scale, scale, 1.0f); + TJAPlayer3.Tx.Dani_DanIcon_Fade.Opacity = opacity; + TJAPlayer3.Tx.Dani_DanIcon_Fade.color4 = C変換.ColorToColor4(TJAPlayer3.Skin.DaniSelect_DanIcon_Color[Math.Min(count - 1, TJAPlayer3.Skin.DaniSelect_DanIcon_Color.Length - 1)]); + TJAPlayer3.Tx.Dani_DanIcon_Fade.t2D拡大率考慮描画(TJAPlayer3.app.Device, CTexture.RefPnt.Left, x - ((TJAPlayer3.Tx.Dani_DanIcon.szテクスチャサイズ.Width / 2) * scale), y); + TJAPlayer3.Tx.Dani_DanIcon_Fade.Opacity = 255; + } + + TJAPlayer3.Tx.Dani_DanIcon.vc拡大縮小倍率 = new SharpDX.Vector3(scale, scale, 1.0f); TJAPlayer3.Tx.Dani_DanIcon.Opacity = opacity; TJAPlayer3.Tx.Dani_DanIcon.color4 = C変換.ColorToColor4(TJAPlayer3.Skin.DaniSelect_DanIcon_Color[Math.Min(count - 1, TJAPlayer3.Skin.DaniSelect_DanIcon_Color.Length - 1)]); TJAPlayer3.Tx.Dani_DanIcon.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, x, y); TJAPlayer3.Tx.Dani_DanIcon.Opacity = 255; + TJAPlayer3.stage選曲.act曲リスト.ResolveTitleTexture(ttkTmp).vc拡大縮小倍率 = new SharpDX.Vector3(scale, scale, 1.0f); TJAPlayer3.stage選曲.act曲リスト.ResolveTitleTexture(ttkTmp).Opacity = opacity; - TJAPlayer3.stage選曲.act曲リスト.ResolveTitleTexture(ttkTmp).t2D中心基準描画(TJAPlayer3.app.Device, x + TJAPlayer3.Skin.DaniSelect_DanIconTitle_Offset[0], y + TJAPlayer3.Skin.DaniSelect_DanIconTitle_Offset[1]); + TJAPlayer3.stage選曲.act曲リスト.ResolveTitleTexture(ttkTmp).t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, x + TJAPlayer3.Skin.DaniSelect_DanIconTitle_Offset[0], y + TJAPlayer3.Skin.DaniSelect_DanIconTitle_Offset[1]); TJAPlayer3.stage選曲.act曲リスト.ResolveTitleTexture(ttkTmp).Opacity = 255; } @@ -485,7 +496,7 @@ namespace TJAPlayer3 TJAPlayer3.stage選曲.act曲リスト.ResolveTitleTexture(stバー情報[currentSong].ttkタイトル[i]).t2D描画(TJAPlayer3.app.Device, scroll + Anime + TJAPlayer3.Skin.DaniSelect_Title_X[pos], TJAPlayer3.Skin.DaniSelect_Title_Y[pos]); TJAPlayer3.stage選曲.act曲リスト.ResolveTitleTexture(stバー情報[currentSong].ttkタイトル[i]).Opacity = 255; - tDisplayDanIcon(i + 1, scroll + Anime + TJAPlayer3.Skin.DaniSelect_DanIcon_X[pos], TJAPlayer3.Skin.DaniSelect_DanIcon_Y[pos], opacity); + tDisplayDanIcon(i + 1, scroll + Anime + TJAPlayer3.Skin.DaniSelect_DanIcon_X[pos], TJAPlayer3.Skin.DaniSelect_DanIcon_Y[pos], opacity, 1.0f); } for (int i = 0; i < stバー情報[currentSong].n曲難易度.Length; i++) diff --git a/TJAPlayer3/Stages/07.Game/Taiko/Dan_Cert.cs b/TJAPlayer3/Stages/07.Game/Taiko/Dan_Cert.cs index 894753d2..fbee011f 100644 --- a/TJAPlayer3/Stages/07.Game/Taiko/Dan_Cert.cs +++ b/TJAPlayer3/Stages/07.Game/Taiko/Dan_Cert.cs @@ -677,6 +677,8 @@ namespace TJAPlayer3 TJAPlayer3.Tx.DanC_Gauge[drawGaugeTypetwo].Opacity = 255; + int miniIconOpacity = 255; + #endregion // Currently showing song parameters @@ -694,6 +696,8 @@ namespace TJAPlayer3 TJAPlayer3.Tx.DanC_Gauge[drawGaugeTypetwo].Opacity = counter800; + miniIconOpacity = counter800; + #endregion } else if (Counter_In != null || (Counter_Wait != null && Counter_Wait.n現在の値 < 800)) @@ -708,12 +712,14 @@ namespace TJAPlayer3 TJAPlayer3.Tx.DanC_Gauge[drawGaugeTypetwo].Opacity = 0; + miniIconOpacity = 0; + #endregion } } // Bars starting from the song N - if (NowShowingNumber >= j) + if (NowShowingNumber >= j && (j - NowShowingNumber) > -2) { // Determine bars width TJAPlayer3.Tx.DanC_SmallBase.vc拡大縮小倍率.X = isSmallGauge ? 0.34f : 1f; @@ -722,7 +728,7 @@ namespace TJAPlayer3 int miniBarPositionX = barXOffset + (isSmallGauge ? TJAPlayer3.Skin.Game_DanC_SmallBase_Offset_X[1] : TJAPlayer3.Skin.Game_DanC_SmallBase_Offset_X[0]); // 613 + (j - 1) * 33 : Small base (barYoffset for 3rd exam : 494 + 119 + Local song offset (j - 1) * 33) - int miniBarPositionY = (barYOffset + (isSmallGauge ? TJAPlayer3.Skin.Game_DanC_SmallBase_Offset_Y[1] : TJAPlayer3.Skin.Game_DanC_SmallBase_Offset_Y[0])) + (j - 1) * 33 - (TJAPlayer3.Skin.Game_DanC_Size[1] + (TJAPlayer3.Skin.Game_DanC_Padding)); + int miniBarPositionY = (barYOffset + (isSmallGauge ? TJAPlayer3.Skin.Game_DanC_SmallBase_Offset_Y[1] : TJAPlayer3.Skin.Game_DanC_SmallBase_Offset_Y[0])) + ((j - 1) % 2) * 33 - (TJAPlayer3.Skin.Game_DanC_Size[1] + (TJAPlayer3.Skin.Game_DanC_Padding)); // Display bars #region [Displayables] @@ -752,6 +758,8 @@ namespace TJAPlayer3 // Usually +23 for gold and +17 for white, to test DrawMiniNumber(TJAPlayer3.stage選曲.r確定された曲.DanSongs[j - 1].Dan_C[i].GetAmount(), miniBarPositionX + 11, miniBarPositionY + 20, 14, TJAPlayer3.stage選曲.r確定された曲.DanSongs[j - 1].Dan_C[i]); + CActSelect段位リスト.tDisplayDanIcon(j, miniBarPositionX + TJAPlayer3.Skin.Game_DanC_DanIcon_Offset_Mini[0], miniBarPositionY + TJAPlayer3.Skin.Game_DanC_DanIcon_Offset_Mini[1], miniIconOpacity, 0.5f, false); + #endregion } } @@ -837,6 +845,8 @@ namespace TJAPlayer3 #endregion + int iconOpacity = 255; + if (ExamChange[i] && NowShowingNumber != 0 && Counter_Wait != null) { if (Counter_Wait.n現在の値 >= 800) @@ -851,6 +861,8 @@ namespace TJAPlayer3 TJAPlayer3.Tx.DanC_ExamRange.Opacity = counter800; TJAPlayer3.Tx.DanC_Small_Number.Opacity = counter800; + iconOpacity = counter800; + #endregion } else if (Counter_Wait.n現在の値 >= 800 - 255) @@ -865,6 +877,8 @@ namespace TJAPlayer3 TJAPlayer3.Tx.DanC_ExamRange.Opacity = counter255M255; TJAPlayer3.Tx.DanC_Small_Number.Opacity = counter255M255; + iconOpacity = counter255M255; + #endregion } } @@ -949,6 +963,12 @@ namespace TJAPlayer3 #endregion + if (ExamChange[i]) + { + CActSelect段位リスト.tDisplayDanIcon(NowShowingNumber + 1, barXOffset + TJAPlayer3.Skin.Game_DanC_DanIcon_Offset[0], barYOffset + TJAPlayer3.Skin.Game_DanC_DanIcon_Offset[1], iconOpacity, 0.6f, true); + } + + #region [Dan conditions display] int offset = TJAPlayer3.Skin.Game_DanC_Exam_Offset[0]; diff --git a/TJAPlayer3/Stages/08.Result/CStage結果.cs b/TJAPlayer3/Stages/08.Result/CStage結果.cs index bee63038..5ee4de75 100644 --- a/TJAPlayer3/Stages/08.Result/CStage結果.cs +++ b/TJAPlayer3/Stages/08.Result/CStage結果.cs @@ -1823,6 +1823,8 @@ namespace TJAPlayer3 TJAPlayer3.stage選曲.act曲リスト.ResolveTitleTexture(this.ttkDanTitles[i]).Opacity = opacity; TJAPlayer3.stage選曲.act曲リスト.ResolveTitleTexture(this.ttkDanTitles[i]).t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.DanResult_DanTitles_X[drawPos] + offset, TJAPlayer3.Skin.DanResult_DanTitles_Y[drawPos]); + CActSelect段位リスト.tDisplayDanIcon(i + 1, TJAPlayer3.Skin.DanResult_DanIcon_X[drawPos] + offset, TJAPlayer3.Skin.DanResult_DanIcon_Y[drawPos], opacity, 1.0f); + } #endregion diff --git a/Test/System/SimpleStyle/DanResultConfig.ini b/Test/System/SimpleStyle/DanResultConfig.ini index b3c9fc6d..7afff3f3 100644 --- a/Test/System/SimpleStyle/DanResultConfig.ini +++ b/Test/System/SimpleStyle/DanResultConfig.ini @@ -63,6 +63,11 @@ DanResult_DanTitles_X=401,401,401 DanResult_DanTitles_Y=139,322,505 +DanResult_DanIcon_X=315,315,315 + +DanResult_DanIcon_Y=158,342,526 + + DanResult_Rank=130,380 diff --git a/Test/System/SimpleStyle/GameConfig.ini b/Test/System/SimpleStyle/GameConfig.ini index 523600c2..7444d020 100644 --- a/Test/System/SimpleStyle/GameConfig.ini +++ b/Test/System/SimpleStyle/GameConfig.ini @@ -462,6 +462,11 @@ Game_DanC_Title_Y=257,237 Game_DanC_SubTitle=806,277 +Game_DanC_DanIcon_Offset=44,57 + +Game_DanC_DanIcon_Offset_Mini=-19,11 + + Game_DanC_Title_Size=30 Game_DanC_SubTitle_Size=22 diff --git a/Test/System/SimpleStyle/Graphics/3_DaniSelect/DanIcon_Fade.png b/Test/System/SimpleStyle/Graphics/3_DaniSelect/DanIcon_Fade.png new file mode 100644 index 0000000000000000000000000000000000000000..74eced5de7a2b7c47c95fd735cf5b7c499ef9f00 GIT binary patch literal 3071 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