1
0
mirror of synced 2025-01-30 19:43:47 +01:00

Tower Chibi support & VTT adjustment (#519)

* adjust font stuff

- upgrade HPrivateFastFont
- adjust a bit of VTTParser stuff
- set aside differences and form a friendship with VTTParser.cs

* Add tower chibi support per-character
This commit is contained in:
DragonRatTiger / リュウコ 2023-11-03 15:20:02 -04:00 committed by GitHub
parent 4871fda4ce
commit 76d60b61ef
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 387 additions and 49 deletions

View File

@ -4058,7 +4058,11 @@ namespace TJAPlayer3
}
else if (strCommand == nameof(Game_Lyric_FontName))
{
Game_Lyric_FontName = strParam;
strParam = strParam.Replace('/', System.IO.Path.DirectorySeparatorChar);
strParam = strParam.Replace('\\', System.IO.Path.DirectorySeparatorChar);
if (HPrivateFastFont.FontExists(strParam)) Game_Lyric_FontName = strParam;
strParam = Path(strParam);
if (HPrivateFastFont.FontExists(strParam)) Game_Lyric_FontName = strParam;
}
else if (strCommand == nameof(Game_Lyric_FontSize))
{
@ -8458,7 +8462,16 @@ namespace TJAPlayer3
Characters_Result_Clear_Ptn,
Characters_Result_Failed_Ptn,
Characters_Result_Failed_In_Ptn,
Characters_Result_Normal_Ptn;
Characters_Result_Normal_Ptn,
Characters_Tower_Standing_Ptn,
Characters_Tower_Climbing_Ptn,
Characters_Tower_Running_Ptn,
Characters_Tower_Clear_Ptn,
Characters_Tower_Fail_Ptn,
Characters_Tower_Standing_Tired_Ptn,
Characters_Tower_Climbing_Tired_Ptn,
Characters_Tower_Running_Tired_Ptn,
Characters_Tower_Clear_Tired_Ptn;
// Config
@ -8494,6 +8507,17 @@ namespace TJAPlayer3
Characters_Motion_SoulIn,
Characters_Motion_SoulOut,
Characters_Motion_Return;
/*
Characters_Motion_Tower_Standing,
Characters_Motion_Tower_Climbing,
Characters_Motion_Tower_Running,
Characters_Motion_Tower_Clear,
Characters_Motion_Tower_Fail,
Characters_Motion_Tower_Standing_Tired,
Characters_Motion_Tower_Climbing_Tired,
Characters_Motion_Tower_Running_Tired,
Characters_Motion_Tower_Clear_Tired;
*/
public float[] Characters_Beat_Normal,
Characters_Beat_10Combo,
Characters_Beat_10Combo_Clear,
@ -8512,7 +8536,16 @@ namespace TJAPlayer3
Characters_Beat_GoGoMax,
Characters_Beat_SoulIn,
Characters_Beat_SoulOut,
Characters_Beat_Return;
Characters_Beat_Return,
Characters_Beat_Tower_Standing,
Characters_Beat_Tower_Climbing,
Characters_Beat_Tower_Running,
Characters_Beat_Tower_Clear,
Characters_Beat_Tower_Fail,
Characters_Beat_Tower_Standing_Tired,
Characters_Beat_Tower_Climbing_Tired,
Characters_Beat_Tower_Running_Tired,
Characters_Beat_Tower_Clear_Tired;
public int[] Characters_Balloon_Timer;
public int[] Characters_Balloon_Delay;
public int[] Characters_Balloon_FadeOut;

View File

@ -17,21 +17,21 @@ namespace TJAPlayer3
return CFontRenderer.FontExists(fontpath);
}
public static CCachedFontRenderer tInstantiateFont(string fontName, int scale)
public static CCachedFontRenderer tInstantiateFont(string fontName, int scale, CFontRenderer.FontStyle style = CFontRenderer.FontStyle.Regular)
{
if (FontExists(fontName))
return (new CCachedFontRenderer(fontName, scale));
return (new CCachedFontRenderer(DefaultFont, scale));
return (new CCachedFontRenderer(fontName, scale, style));
return (new CCachedFontRenderer(DefaultFont, scale, style));
}
public static CCachedFontRenderer tInstantiateMainFont(int scale)
public static CCachedFontRenderer tInstantiateMainFont(int scale, CFontRenderer.FontStyle style = CFontRenderer.FontStyle.Regular)
{
return tInstantiateFont(TJAPlayer3.Skin.FontName, scale);
return tInstantiateFont(TJAPlayer3.Skin.FontName, scale, style);
}
public static CCachedFontRenderer tInstantiateBoxFont(int scale)
public static CCachedFontRenderer tInstantiateBoxFont(int scale, CFontRenderer.FontStyle style = CFontRenderer.FontStyle.Regular)
{
return tInstantiateFont(TJAPlayer3.Skin.BoxFontName, scale);
return tInstantiateFont(TJAPlayer3.Skin.BoxFontName, scale, style);
}
}
}

View File

@ -176,6 +176,8 @@ namespace TJAPlayer3
else if (!ignoreLyrics && TryParseTimestamp(lines[i], out start, out end))
{
lyricData = new List<LyricData>(); // Prevents chapters from being included by mistake
if (start > endTime && endTime != -1)
{
lrclist.Add(CreateLyric(new List<LyricData>() { new LyricData() { timestamp = endTime + offset } }, order));
@ -452,22 +454,15 @@ namespace TJAPlayer3
string text = String.Empty;
// HATE. LET ME TELL YOU HOW MUCH I'VE COME TO HATE YOU SINCE I BEGAN TO CODE.
// THERE ARE 387.44 MILLION LINES OF PRINTED CODE IN REGIONED THIN LAYERS THAT FILL THIS PROGRAM.
// IF THE WORD 'HATE' WAS COMMENTED ON EACH LINE OF THOSE HUNDREDS OF MILLIONS OF LINES OF CODE
// IT WOULD NOT EQUAL ONE ONE BILLIONITH OF THE HATE I FEEL FOR VTTParser.cs, CPrivateFont.cs, AND CPrivateFastFont.cs AT THIS MICRO-INSTANT.
// HATE. HATE.
foreach (LyricData data in datalist)
{
string fontfamily = !string.IsNullOrEmpty(TJAPlayer3.Skin.Game_Lyric_FontName) ? TJAPlayer3.Skin.Game_Lyric_FontName : CFontRenderer.DefaultFontName; // everytime CPrivateFont is disposed, it also disposes fontfamily, so I gotta reinitialize this everytime :(
using (CCachedFontRenderer fastdraw = new CCachedFontRenderer(fontfamily, TJAPlayer3.Skin.Game_Lyric_FontSize, data.Style))
using (CCachedFontRenderer fastdraw = HPrivateFastFont.tInstantiateFont(TJAPlayer3.Skin.Game_Lyric_FontName, TJAPlayer3.Skin.Game_Lyric_FontSize, data.Style))
{
SKBitmap textdrawing = fastdraw.DrawText(data.Text, data.ForeColor, data.BackColor, null, 30); // Draw main text
if (data.IsRuby) // hell yeah ruby time
if (data.IsRuby) // ruby time
{
using (CCachedFontRenderer rubydraw = new CCachedFontRenderer(fontfamily, TJAPlayer3.Skin.Game_Lyric_FontSize / 2, data.Style))
using (CCachedFontRenderer rubydraw = HPrivateFastFont.tInstantiateFont(TJAPlayer3.Skin.Game_Lyric_FontName, TJAPlayer3.Skin.Game_Lyric_FontSize / 2, data.Style))
{
SKBitmap ruby = rubydraw.DrawText(data.RubyText, data.ForeColor, data.BackColor, null, 30);
Size size = new Size(textdrawing.Width > ruby.Width ? textdrawing.Width : ruby.Width, textdrawing.Height + (TJAPlayer3.Skin.Game_Lyric_VTTRubyOffset + (ruby.Height / 2)));

View File

@ -1223,6 +1223,15 @@ namespace TJAPlayer3
Characters_Menu_Loop = new CTexture[TJAPlayer3.Skin.Characters_Ptn][];
Characters_Menu_Start = new CTexture[TJAPlayer3.Skin.Characters_Ptn][];
Characters_Menu_Select = new CTexture[TJAPlayer3.Skin.Characters_Ptn][];
Characters_Tower_Standing = new CTexture[TJAPlayer3.Skin.Characters_Ptn][];
Characters_Tower_Climbing = new CTexture[TJAPlayer3.Skin.Characters_Ptn][];
Characters_Tower_Running = new CTexture[TJAPlayer3.Skin.Characters_Ptn][];
Characters_Tower_Clear = new CTexture[TJAPlayer3.Skin.Characters_Ptn][];
Characters_Tower_Fail = new CTexture[TJAPlayer3.Skin.Characters_Ptn][];
Characters_Tower_Standing_Tired = new CTexture[TJAPlayer3.Skin.Characters_Ptn][];
Characters_Tower_Climbing_Tired = new CTexture[TJAPlayer3.Skin.Characters_Ptn][];
Characters_Tower_Running_Tired = new CTexture[TJAPlayer3.Skin.Characters_Ptn][];
Characters_Tower_Clear_Tired = new CTexture[TJAPlayer3.Skin.Characters_Ptn][];
TJAPlayer3.Skin.Characters_DirName = new string[TJAPlayer3.Skin.Characters_Ptn];
TJAPlayer3.Skin.Characters_Normal_Ptn = new int[TJAPlayer3.Skin.Characters_Ptn];
@ -1256,6 +1265,15 @@ namespace TJAPlayer3
TJAPlayer3.Skin.Characters_Menu_Loop_Ptn = new int[TJAPlayer3.Skin.Characters_Ptn];
TJAPlayer3.Skin.Characters_Menu_Start_Ptn = new int[TJAPlayer3.Skin.Characters_Ptn];
TJAPlayer3.Skin.Characters_Menu_Select_Ptn = new int[TJAPlayer3.Skin.Characters_Ptn];
TJAPlayer3.Skin.Characters_Tower_Standing_Ptn = new int[TJAPlayer3.Skin.Characters_Ptn];
TJAPlayer3.Skin.Characters_Tower_Climbing_Ptn = new int[TJAPlayer3.Skin.Characters_Ptn];
TJAPlayer3.Skin.Characters_Tower_Running_Ptn = new int[TJAPlayer3.Skin.Characters_Ptn];
TJAPlayer3.Skin.Characters_Tower_Clear_Ptn = new int[TJAPlayer3.Skin.Characters_Ptn];
TJAPlayer3.Skin.Characters_Tower_Fail_Ptn = new int[TJAPlayer3.Skin.Characters_Ptn];
TJAPlayer3.Skin.Characters_Tower_Standing_Tired_Ptn = new int[TJAPlayer3.Skin.Characters_Ptn];
TJAPlayer3.Skin.Characters_Tower_Climbing_Tired_Ptn = new int[TJAPlayer3.Skin.Characters_Ptn];
TJAPlayer3.Skin.Characters_Tower_Running_Tired_Ptn = new int[TJAPlayer3.Skin.Characters_Ptn];
TJAPlayer3.Skin.Characters_Tower_Clear_Tired_Ptn = new int[TJAPlayer3.Skin.Characters_Ptn];
TJAPlayer3.Skin.Characters_Resolution = new int[TJAPlayer3.Skin.Characters_Ptn][];
TJAPlayer3.Skin.Characters_Heya_Render_Offset = new int[TJAPlayer3.Skin.Characters_Ptn][];
@ -1289,6 +1307,17 @@ namespace TJAPlayer3
TJAPlayer3.Skin.Characters_Motion_SoulIn = new int[TJAPlayer3.Skin.Characters_Ptn][];
TJAPlayer3.Skin.Characters_Motion_SoulOut = new int[TJAPlayer3.Skin.Characters_Ptn][];
TJAPlayer3.Skin.Characters_Motion_Return = new int[TJAPlayer3.Skin.Characters_Ptn][];
/*
TJAPlayer3.Skin.Characters_Motion_Tower_Standing = new int[TJAPlayer3.Skin.Characters_Ptn][];
TJAPlayer3.Skin.Characters_Motion_Tower_Climbing = new int[TJAPlayer3.Skin.Characters_Ptn][];
TJAPlayer3.Skin.Characters_Motion_Tower_Running = new int[TJAPlayer3.Skin.Characters_Ptn][];
TJAPlayer3.Skin.Characters_Motion_Tower_Clear = new int[TJAPlayer3.Skin.Characters_Ptn][];
TJAPlayer3.Skin.Characters_Motion_Tower_Fail = new int[TJAPlayer3.Skin.Characters_Ptn][];
TJAPlayer3.Skin.Characters_Motion_Tower_Standing_Tired = new int[TJAPlayer3.Skin.Characters_Ptn][];
TJAPlayer3.Skin.Characters_Motion_Tower_Climbing_Tired = new int[TJAPlayer3.Skin.Characters_Ptn][];
TJAPlayer3.Skin.Characters_Motion_Tower_Running_Tired = new int[TJAPlayer3.Skin.Characters_Ptn][];
TJAPlayer3.Skin.Characters_Motion_Tower_Clear_Tired = new int[TJAPlayer3.Skin.Characters_Ptn][];
*/
TJAPlayer3.Skin.Characters_Beat_Normal = new float[TJAPlayer3.Skin.Characters_Ptn];
TJAPlayer3.Skin.Characters_Beat_Miss = new float[TJAPlayer3.Skin.Characters_Ptn];
TJAPlayer3.Skin.Characters_Beat_MissDown = new float[TJAPlayer3.Skin.Characters_Ptn];
@ -1308,6 +1337,15 @@ namespace TJAPlayer3
TJAPlayer3.Skin.Characters_Beat_SoulIn = new float[TJAPlayer3.Skin.Characters_Ptn];
TJAPlayer3.Skin.Characters_Beat_SoulOut = new float[TJAPlayer3.Skin.Characters_Ptn];
TJAPlayer3.Skin.Characters_Beat_Return = new float[TJAPlayer3.Skin.Characters_Ptn];
TJAPlayer3.Skin.Characters_Beat_Tower_Standing = new float[TJAPlayer3.Skin.Characters_Ptn];
TJAPlayer3.Skin.Characters_Beat_Tower_Climbing = new float[TJAPlayer3.Skin.Characters_Ptn];
TJAPlayer3.Skin.Characters_Beat_Tower_Running = new float[TJAPlayer3.Skin.Characters_Ptn];
TJAPlayer3.Skin.Characters_Beat_Tower_Clear = new float[TJAPlayer3.Skin.Characters_Ptn];
TJAPlayer3.Skin.Characters_Beat_Tower_Fail = new float[TJAPlayer3.Skin.Characters_Ptn];
TJAPlayer3.Skin.Characters_Beat_Tower_Standing_Tired = new float[TJAPlayer3.Skin.Characters_Ptn];
TJAPlayer3.Skin.Characters_Beat_Tower_Climbing_Tired = new float[TJAPlayer3.Skin.Characters_Ptn];
TJAPlayer3.Skin.Characters_Beat_Tower_Running_Tired = new float[TJAPlayer3.Skin.Characters_Ptn];
TJAPlayer3.Skin.Characters_Beat_Tower_Clear_Tired = new float[TJAPlayer3.Skin.Characters_Ptn];
TJAPlayer3.Skin.Characters_Balloon_Timer = new int[TJAPlayer3.Skin.Characters_Ptn];
TJAPlayer3.Skin.Characters_Balloon_Delay = new int[TJAPlayer3.Skin.Characters_Ptn];
TJAPlayer3.Skin.Characters_Balloon_FadeOut = new int[TJAPlayer3.Skin.Characters_Ptn];
@ -1566,6 +1604,32 @@ namespace TJAPlayer3
for (int j = 0; j < TJAPlayer3.Skin.Characters_Balloon_Miss_Ptn[i]; j++)
Characters_Balloon_Miss[i][j]?.Dispose();
for (int j = 0; j < TJAPlayer3.Skin.Characters_Tower_Standing_Ptn[i]; j++)
Characters_Tower_Standing[i][j]?.Dispose();
for (int j = 0; j < TJAPlayer3.Skin.Characters_Tower_Climbing_Ptn[i]; j++)
Characters_Tower_Climbing[i][j]?.Dispose();
for (int j = 0; j < TJAPlayer3.Skin.Characters_Tower_Running_Ptn[i]; j++)
Characters_Tower_Running[i][j]?.Dispose();
for (int j = 0; j < TJAPlayer3.Skin.Characters_Tower_Clear_Ptn[i]; j++)
Characters_Tower_Clear[i][j]?.Dispose();
for (int j = 0; j < TJAPlayer3.Skin.Characters_Tower_Fail_Ptn[i]; j++)
Characters_Tower_Fail[i][j]?.Dispose();
for (int j = 0; j < TJAPlayer3.Skin.Characters_Tower_Standing_Tired_Ptn[i]; j++)
Characters_Tower_Standing_Tired[i][j]?.Dispose();
for (int j = 0; j < TJAPlayer3.Skin.Characters_Tower_Climbing_Tired_Ptn[i]; j++)
Characters_Tower_Climbing_Tired[i][j]?.Dispose();
for (int j = 0; j < TJAPlayer3.Skin.Characters_Tower_Running_Tired_Ptn[i]; j++)
Characters_Tower_Running_Tired[i][j]?.Dispose();
for (int j = 0; j < TJAPlayer3.Skin.Characters_Tower_Clear_Tired_Ptn[i]; j++)
Characters_Tower_Clear_Tired[i][j]?.Dispose();
#endregion
}
@ -1615,6 +1679,15 @@ namespace TJAPlayer3
TJAPlayer3.Skin.Characters_Result_Failed_Ptn[i] = TJAPlayer3.t連番画像の枚数を数える(charaPath + @$"{Path.DirectorySeparatorChar}Result_Failed{Path.DirectorySeparatorChar}");
TJAPlayer3.Skin.Characters_Result_Failed_In_Ptn[i] = TJAPlayer3.t連番画像の枚数を数える(charaPath + @$"{Path.DirectorySeparatorChar}Result_Failed_In{Path.DirectorySeparatorChar}");
TJAPlayer3.Skin.Characters_Result_Normal_Ptn[i] = TJAPlayer3.t連番画像の枚数を数える(charaPath + @$"{Path.DirectorySeparatorChar}Result_Normal{Path.DirectorySeparatorChar}");
TJAPlayer3.Skin.Characters_Tower_Standing_Ptn[i] = TJAPlayer3.t連番画像の枚数を数える(charaPath + @$"{Path.DirectorySeparatorChar}Tower_Char{Path.DirectorySeparatorChar}Standing{Path.DirectorySeparatorChar}");
TJAPlayer3.Skin.Characters_Tower_Climbing_Ptn[i] = TJAPlayer3.t連番画像の枚数を数える(charaPath + @$"{Path.DirectorySeparatorChar}Tower_Char{Path.DirectorySeparatorChar}Climbing{Path.DirectorySeparatorChar}");
TJAPlayer3.Skin.Characters_Tower_Running_Ptn[i] = TJAPlayer3.t連番画像の枚数を数える(charaPath + @$"{Path.DirectorySeparatorChar}Tower_Char{Path.DirectorySeparatorChar}Running{Path.DirectorySeparatorChar}");
TJAPlayer3.Skin.Characters_Tower_Clear_Ptn[i] = TJAPlayer3.t連番画像の枚数を数える(charaPath + @$"{Path.DirectorySeparatorChar}Tower_Char{Path.DirectorySeparatorChar}Clear{Path.DirectorySeparatorChar}");
TJAPlayer3.Skin.Characters_Tower_Fail_Ptn[i] = TJAPlayer3.t連番画像の枚数を数える(charaPath + @$"{Path.DirectorySeparatorChar}Tower_Char{Path.DirectorySeparatorChar}Fail{Path.DirectorySeparatorChar}");
TJAPlayer3.Skin.Characters_Tower_Standing_Tired_Ptn[i] = TJAPlayer3.t連番画像の枚数を数える(charaPath + @$"{Path.DirectorySeparatorChar}Tower_Char{Path.DirectorySeparatorChar}Standing_Tired{Path.DirectorySeparatorChar}");
TJAPlayer3.Skin.Characters_Tower_Climbing_Tired_Ptn[i] = TJAPlayer3.t連番画像の枚数を数える(charaPath + @$"{Path.DirectorySeparatorChar}Tower_Char{Path.DirectorySeparatorChar}Climbing_Tired{Path.DirectorySeparatorChar}");
TJAPlayer3.Skin.Characters_Tower_Running_Tired_Ptn[i] = TJAPlayer3.t連番画像の枚数を数える(charaPath + @$"{Path.DirectorySeparatorChar}Tower_Char{Path.DirectorySeparatorChar}Running_Tired{Path.DirectorySeparatorChar}");
TJAPlayer3.Skin.Characters_Tower_Clear_Tired_Ptn[i] = TJAPlayer3.t連番画像の枚数を数える(charaPath + @$"{Path.DirectorySeparatorChar}Tower_Char{Path.DirectorySeparatorChar}Clear_Tired{Path.DirectorySeparatorChar}");
Characters_Normal[i] = new CTexture[TJAPlayer3.Skin.Characters_Normal_Ptn[i]];
Characters_Normal_Missed[i] = new CTexture[TJAPlayer3.Skin.Characters_Normal_Missed_Ptn[i]];
@ -1647,6 +1720,15 @@ namespace TJAPlayer3
Characters_Menu_Loop[i] = new CTexture[TJAPlayer3.Skin.Characters_Menu_Loop_Ptn[i]];
Characters_Menu_Start[i] = new CTexture[TJAPlayer3.Skin.Characters_Menu_Start_Ptn[i]];
Characters_Menu_Select[i] = new CTexture[TJAPlayer3.Skin.Characters_Menu_Select_Ptn[i]];
Characters_Tower_Standing[i] = new CTexture[TJAPlayer3.Skin.Characters_Tower_Standing_Ptn[i]];
Characters_Tower_Climbing[i] = new CTexture[TJAPlayer3.Skin.Characters_Tower_Climbing_Ptn[i]];
Characters_Tower_Running[i] = new CTexture[TJAPlayer3.Skin.Characters_Tower_Running_Ptn[i]];
Characters_Tower_Clear[i] = new CTexture[TJAPlayer3.Skin.Characters_Tower_Clear_Ptn[i]];
Characters_Tower_Fail[i] = new CTexture[TJAPlayer3.Skin.Characters_Tower_Fail_Ptn[i]];
Characters_Tower_Standing_Tired[i] = new CTexture[TJAPlayer3.Skin.Characters_Tower_Standing_Tired_Ptn[i]];
Characters_Tower_Climbing_Tired[i] = new CTexture[TJAPlayer3.Skin.Characters_Tower_Climbing_Tired_Ptn[i]];
Characters_Tower_Running_Tired[i] = new CTexture[TJAPlayer3.Skin.Characters_Tower_Running_Tired_Ptn[i]];
Characters_Tower_Clear_Tired[i] = new CTexture[TJAPlayer3.Skin.Characters_Tower_Clear_Tired_Ptn[i]];
#endregion
@ -1745,6 +1827,33 @@ namespace TJAPlayer3
for (int j = 0; j < TJAPlayer3.Skin.Characters_Balloon_Miss_Ptn[i]; j++)
Characters_Balloon_Miss[i][j] = TxCGlobal(CHARACTERS + TJAPlayer3.Skin.Characters_DirName[i] + @$"{Path.DirectorySeparatorChar}Balloon_Miss{Path.DirectorySeparatorChar}" + j.ToString() + @$".png");
for (int j = 0; j < TJAPlayer3.Skin.Characters_Tower_Standing_Ptn[i]; j++)
Characters_Tower_Standing[i][j] = TxCGlobal(CHARACTERS + TJAPlayer3.Skin.Characters_DirName[i] + @$"{Path.DirectorySeparatorChar}Tower_Char{Path.DirectorySeparatorChar}Standing{Path.DirectorySeparatorChar}" + j.ToString() + @$".png");
for (int j = 0; j < TJAPlayer3.Skin.Characters_Tower_Climbing_Ptn[i]; j++)
Characters_Tower_Climbing[i][j] = TxCGlobal(CHARACTERS + TJAPlayer3.Skin.Characters_DirName[i] + @$"{Path.DirectorySeparatorChar}Tower_Char{Path.DirectorySeparatorChar}Climbing{Path.DirectorySeparatorChar}" + j.ToString() + @$".png");
for (int j = 0; j < TJAPlayer3.Skin.Characters_Tower_Running_Ptn[i]; j++)
Characters_Tower_Running[i][j] = TxCGlobal(CHARACTERS + TJAPlayer3.Skin.Characters_DirName[i] + @$"{Path.DirectorySeparatorChar}Tower_Char{Path.DirectorySeparatorChar}Running{Path.DirectorySeparatorChar}" + j.ToString() + @$".png");
for (int j = 0; j < TJAPlayer3.Skin.Characters_Tower_Clear_Ptn[i]; j++)
Characters_Tower_Clear[i][j] = TxCGlobal(CHARACTERS + TJAPlayer3.Skin.Characters_DirName[i] + @$"{Path.DirectorySeparatorChar}Tower_Char{Path.DirectorySeparatorChar}Clear{Path.DirectorySeparatorChar}" + j.ToString() + @$".png");
for (int j = 0; j < TJAPlayer3.Skin.Characters_Tower_Fail_Ptn[i]; j++)
Characters_Tower_Fail[i][j] = TxCGlobal(CHARACTERS + TJAPlayer3.Skin.Characters_DirName[i] + @$"{Path.DirectorySeparatorChar}Tower_Char{Path.DirectorySeparatorChar}Fail{Path.DirectorySeparatorChar}" + j.ToString() + @$".png");
for (int j = 0; j < TJAPlayer3.Skin.Characters_Tower_Standing_Tired_Ptn[i]; j++)
Characters_Tower_Standing_Tired[i][j] = TxCGlobal(CHARACTERS + TJAPlayer3.Skin.Characters_DirName[i] + @$"{Path.DirectorySeparatorChar}Tower_Char{Path.DirectorySeparatorChar}Standing_Tired{Path.DirectorySeparatorChar}" + j.ToString() + @$".png");
for (int j = 0; j < TJAPlayer3.Skin.Characters_Tower_Climbing_Tired_Ptn[i]; j++)
Characters_Tower_Climbing_Tired[i][j] = TxCGlobal(CHARACTERS + TJAPlayer3.Skin.Characters_DirName[i] + @$"{Path.DirectorySeparatorChar}Tower_Char{Path.DirectorySeparatorChar}Climbing_Tired{Path.DirectorySeparatorChar}" + j.ToString() + @$".png");
for (int j = 0; j < TJAPlayer3.Skin.Characters_Tower_Running_Tired_Ptn[i]; j++)
Characters_Tower_Running_Tired[i][j] = TxCGlobal(CHARACTERS + TJAPlayer3.Skin.Characters_DirName[i] + @$"{Path.DirectorySeparatorChar}Tower_Char{Path.DirectorySeparatorChar}Running_Tired{Path.DirectorySeparatorChar}" + j.ToString() + @$".png");
for (int j = 0; j < TJAPlayer3.Skin.Characters_Tower_Clear_Tired_Ptn[i]; j++)
Characters_Tower_Clear_Tired[i][j] = TxCGlobal(CHARACTERS + TJAPlayer3.Skin.Characters_DirName[i] + @$"{Path.DirectorySeparatorChar}Tower_Char{Path.DirectorySeparatorChar}Clear_Tired{Path.DirectorySeparatorChar}" + j.ToString() + @$".png");
#endregion
#region [Parse individual character parameters]
@ -1780,6 +1889,17 @@ namespace TJAPlayer3
TJAPlayer3.Skin.Characters_Motion_SoulIn[i] = CreateNumberedArrayFromInt(TJAPlayer3.Skin.Characters_Become_Maxed_Ptn[i]);
TJAPlayer3.Skin.Characters_Motion_SoulOut[i] = CreateNumberedArrayFromInt(TJAPlayer3.Skin.Characters_SoulOut_Ptn[i]);
TJAPlayer3.Skin.Characters_Motion_Return[i] = CreateNumberedArrayFromInt(TJAPlayer3.Skin.Characters_Return_Ptn[i]);
/*
TJAPlayer3.Skin.Characters_Motion_Tower_Standing[i] = CreateNumberedArrayFromInt(TJAPlayer3.Skin.Characters_Tower_Standing_Ptn[i]);
TJAPlayer3.Skin.Characters_Motion_Tower_Climbing[i] = CreateNumberedArrayFromInt(TJAPlayer3.Skin.Characters_Tower_Climbing_Ptn[i]);
TJAPlayer3.Skin.Characters_Motion_Tower_Running[i] = CreateNumberedArrayFromInt(TJAPlayer3.Skin.Characters_Tower_Running_Ptn[i]);
TJAPlayer3.Skin.Characters_Motion_Tower_Clear[i] = CreateNumberedArrayFromInt(TJAPlayer3.Skin.Characters_Tower_Clear_Ptn[i]);
TJAPlayer3.Skin.Characters_Motion_Tower_Fail[i] = CreateNumberedArrayFromInt(TJAPlayer3.Skin.Characters_Tower_Fail_Ptn[i]);
TJAPlayer3.Skin.Characters_Motion_Tower_Standing_Tired[i] = CreateNumberedArrayFromInt(TJAPlayer3.Skin.Characters_Tower_Standing_Tired_Ptn[i]);
TJAPlayer3.Skin.Characters_Motion_Tower_Climbing_Tired[i] = CreateNumberedArrayFromInt(TJAPlayer3.Skin.Characters_Tower_Climbing_Tired_Ptn[i]);
TJAPlayer3.Skin.Characters_Motion_Tower_Running_Tired[i] = CreateNumberedArrayFromInt(TJAPlayer3.Skin.Characters_Tower_Running_Tired_Ptn[i]);
TJAPlayer3.Skin.Characters_Motion_Tower_Clear_Tired[i] = CreateNumberedArrayFromInt(TJAPlayer3.Skin.Characters_Tower_Clear_Tired_Ptn[i]);
*/
TJAPlayer3.Skin.Characters_Beat_Normal[i] = 1;
TJAPlayer3.Skin.Characters_Beat_Miss[i] = 1;
TJAPlayer3.Skin.Characters_Beat_MissDown[i] = 1;
@ -1799,6 +1919,15 @@ namespace TJAPlayer3
TJAPlayer3.Skin.Characters_Beat_SoulIn[i] = 1.5f;
TJAPlayer3.Skin.Characters_Beat_SoulOut[i] = 1.5f;
TJAPlayer3.Skin.Characters_Beat_Return[i] = 1.5f;
TJAPlayer3.Skin.Characters_Beat_Tower_Standing[i] = 1;
TJAPlayer3.Skin.Characters_Beat_Tower_Climbing[i] = 1;
TJAPlayer3.Skin.Characters_Beat_Tower_Running[i] = 1;
TJAPlayer3.Skin.Characters_Beat_Tower_Clear[i] = 1;
TJAPlayer3.Skin.Characters_Beat_Tower_Fail[i] = 1;
TJAPlayer3.Skin.Characters_Beat_Tower_Standing_Tired[i] = 1;
TJAPlayer3.Skin.Characters_Beat_Tower_Climbing_Tired[i] = 1;
TJAPlayer3.Skin.Characters_Beat_Tower_Running_Tired[i] = 1;
TJAPlayer3.Skin.Characters_Beat_Tower_Clear_Tired[i] = 1;
TJAPlayer3.Skin.Characters_Balloon_Timer[i] = 28;
TJAPlayer3.Skin.Characters_Balloon_Delay[i] = 500;
TJAPlayer3.Skin.Characters_Balloon_FadeOut[i] = 84;
@ -2045,6 +2174,51 @@ namespace TJAPlayer3
TJAPlayer3.Skin.Characters_Motion_Return[i] = CConversion.StringToIntArray(strParam);
break;
}
/*case "Game_Chara_Motion_Tower_Standing":
{
TJAPlayer3.Skin.Characters_Motion_Tower_Standing[i] = CConversion.StringToIntArray(strParam);
break;
}
case "Game_Chara_Motion_Tower_Climbing":
{
TJAPlayer3.Skin.Characters_Motion_Tower_Climbing[i] = CConversion.StringToIntArray(strParam);
break;
}
case "Game_Chara_Motion_Tower_Running":
{
TJAPlayer3.Skin.Characters_Motion_Tower_Running[i] = CConversion.StringToIntArray(strParam);
break;
}
case "Game_Chara_Motion_Tower_Clear":
{
TJAPlayer3.Skin.Characters_Motion_Tower_Clear[i] = CConversion.StringToIntArray(strParam);
break;
}
case "Game_Chara_Motion_Tower_Fail":
{
TJAPlayer3.Skin.Characters_Motion_Tower_Fail[i] = CConversion.StringToIntArray(strParam);
break;
}
case "Game_Chara_Motion_Tower_Standing_Tired":
{
TJAPlayer3.Skin.Characters_Motion_Tower_Standing_Tired[i] = CConversion.StringToIntArray(strParam);
break;
}
case "Game_Chara_Motion_Tower_Climbing_Tired":
{
TJAPlayer3.Skin.Characters_Motion_Tower_Climbing_Tired[i] = CConversion.StringToIntArray(strParam);
break;
}
case "Game_Chara_Motion_Tower_Running_Tired":
{
TJAPlayer3.Skin.Characters_Motion_Tower_Running_Tired[i] = CConversion.StringToIntArray(strParam);
break;
}
case "Game_Chara_Motion_Tower_Clear_Tired":
{
TJAPlayer3.Skin.Characters_Motion_Tower_Clear_Tired[i] = CConversion.StringToIntArray(strParam);
break;
}*/
case "Game_Chara_Beat_Normal":
{
TJAPlayer3.Skin.Characters_Beat_Normal[i] = float.Parse(strParam);
@ -2132,6 +2306,51 @@ namespace TJAPlayer3
TJAPlayer3.Skin.Characters_Beat_Return[i] = float.Parse(strParam);
break;
}
case "Game_Chara_Beat_Tower_Standing":
{
TJAPlayer3.Skin.Characters_Beat_Tower_Standing[i] = float.Parse(strParam);
break;
}
case "Game_Chara_Beat_Tower_Climbing":
{
TJAPlayer3.Skin.Characters_Beat_Tower_Climbing[i] = float.Parse(strParam);
break;
}
case "Game_Chara_Beat_Tower_Running":
{
TJAPlayer3.Skin.Characters_Beat_Tower_Running[i] = float.Parse(strParam);
break;
}
case "Game_Chara_Beat_Tower_Clear":
{
TJAPlayer3.Skin.Characters_Beat_Tower_Clear[i] = float.Parse(strParam);
break;
}
case "Game_Chara_Beat_Tower_Fail":
{
TJAPlayer3.Skin.Characters_Beat_Tower_Fail[i] = float.Parse(strParam);
break;
}
case "Game_Chara_Beat_Tower_Standing_Tired":
{
TJAPlayer3.Skin.Characters_Beat_Tower_Standing_Tired[i] = float.Parse(strParam);
break;
}
case "Game_Chara_Beat_Tower_Climbing_Tired":
{
TJAPlayer3.Skin.Characters_Beat_Tower_Climbing_Tired[i] = float.Parse(strParam);
break;
}
case "Game_Chara_Beat_Tower_Running_Tired":
{
TJAPlayer3.Skin.Characters_Beat_Tower_Running_Tired[i] = float.Parse(strParam);
break;
}
case "Game_Chara_Beat_Tower_Clear_Tired":
{
TJAPlayer3.Skin.Characters_Beat_Tower_Clear_Tired[i] = float.Parse(strParam);
break;
}
case "Chara_Entry_AnimationDuration":
{
TJAPlayer3.Skin.Characters_Title_Entry_AnimationDuration[i] = int.Parse(strParam);
@ -2820,8 +3039,16 @@ Result_Mountain = new CTexture[4]*/;
Characters_Result_Clear,
Characters_Result_Failed,
Characters_Result_Failed_In,
Characters_Result_Normal;
Characters_Result_Normal,
Characters_Tower_Standing,
Characters_Tower_Climbing,
Characters_Tower_Running,
Characters_Tower_Clear,
Characters_Tower_Fail,
Characters_Tower_Standing_Tired,
Characters_Tower_Climbing_Tired,
Characters_Tower_Running_Tired,
Characters_Tower_Clear_Tired;
public CTexture[] Characters_Heya_Preview,
Characters_Heya_Render,
Characters_Result_Clear_1P,

View File

@ -183,11 +183,19 @@ namespace TJAPlayer3
this.ct炎 = new CCounter(0, 6, 50, TJAPlayer3.Timer);
this.currentCharacter = Math.Max(0, Math.Min(TJAPlayer3.SaveFileInstances[0].data.Character, TJAPlayer3.Skin.Characters_Ptn - 1));
this.ctSlideAnimation = new CCounter();
this.ctClimbAnimation = new CCounter();
this.ctDonAnimation = new CCounter(0, 1000, 24000f / ((float)TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM[0] * TJAPlayer3.ConfigIni.n演奏速度 / 20), TJAPlayer3.Timer);
this.ctClimbDuration = new CCounter();
this.ctStandingAnimation = new CCounter(0, 1000, (24000f * TJAPlayer3.Skin.Characters_Beat_Tower_Standing[currentCharacter]) / ((float)TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM[0] * TJAPlayer3.ConfigIni.n演奏速度 / 20), TJAPlayer3.Timer);
this.ctClimbingAnimation = new CCounter();
this.ctRunningAnimation = new CCounter();
this.ctClearAnimation = new CCounter();
this.ctFailAnimation = new CCounter();
this.ctStandTiredAnimation = new CCounter();
this.ctClimbTiredAnimation = new CCounter();
this.ctRunTiredAnimation = new CCounter();
this.ctClearTiredAnimation = new CCounter();
base.Activate();
}
@ -446,34 +454,92 @@ namespace TJAPlayer3
#region [Climbing don]
// Will be added in a future skinning update
int currentDon = 0;
bool ctIsTired = !((CFloorManagement.CurrentNumberOfLives / (float)CFloorManagement.MaxNumberOfLives) >= 0.2f && !(CFloorManagement.CurrentNumberOfLives == 1 && CFloorManagement.MaxNumberOfLives != 1));
bool stageEnded = TJAPlayer3.stage演奏ドラム画面.eフェーズID == CStage.Eフェーズ._演奏終了演出 || TJAPlayer3.stage演奏ドラム画面.eフェーズID == CStage.Eフェーズ._STAGE_CLEAR_フェードアウト;
if (bFloorChanged == true)
{
ctClimbAnimation.Start(0, 1500, 120f / ((float)TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM[0] * TJAPlayer3.ConfigIni.n演奏速度 / 20), TJAPlayer3.Timer);
ctDonAnimation.Start(0, 1000, 24000f / ((float)TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM[0] * TJAPlayer3.ConfigIni.n演奏速度 / 20), TJAPlayer3.Timer);
float floorBPM = (float)(TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM[0] * TJAPlayer3.ConfigIni.n演奏速度 / 20);
ctClimbDuration.Start(0, 1500, 120f / floorBPM, TJAPlayer3.Timer);
ctStandingAnimation.Start(0, 1000, (24000f * TJAPlayer3.Skin.Characters_Beat_Tower_Standing[currentCharacter]) / floorBPM, TJAPlayer3.Timer);
ctClimbingAnimation.Start(0, 1000, (24000f * TJAPlayer3.Skin.Characters_Beat_Tower_Climbing[currentCharacter]) / floorBPM, TJAPlayer3.Timer);
ctRunningAnimation.Start(0, 1000, (24000f * TJAPlayer3.Skin.Characters_Beat_Tower_Running[currentCharacter]) / floorBPM, TJAPlayer3.Timer);
ctClearAnimation.Start(0, 1000, (24000f * TJAPlayer3.Skin.Characters_Beat_Tower_Clear[currentCharacter]) / floorBPM, TJAPlayer3.Timer);
ctFailAnimation.Start(0, 1000, (24000f * TJAPlayer3.Skin.Characters_Beat_Tower_Fail[currentCharacter]) / floorBPM, TJAPlayer3.Timer);
ctStandTiredAnimation.Start(0, 1000, (24000f * TJAPlayer3.Skin.Characters_Beat_Tower_Standing_Tired[currentCharacter]) / floorBPM, TJAPlayer3.Timer);
ctClimbTiredAnimation.Start(0, 1000, (24000f * TJAPlayer3.Skin.Characters_Beat_Tower_Climbing_Tired[currentCharacter]) / floorBPM, TJAPlayer3.Timer);
ctRunTiredAnimation.Start(0, 1000, (24000f * TJAPlayer3.Skin.Characters_Beat_Tower_Running_Tired[currentCharacter]) / floorBPM, TJAPlayer3.Timer);
ctClearTiredAnimation.Start(0, 1000, (24000f * TJAPlayer3.Skin.Characters_Beat_Tower_Clear_Tired[currentCharacter]) / floorBPM, TJAPlayer3.Timer);
}
if (ctClimbAnimation.CurrentValue == 0 || ctClimbAnimation.CurrentValue == 1500)
if (ctClimbDuration.CurrentValue > 0 && ctClimbDuration.CurrentValue < 1500)
{
int animDon = ctDonAnimation.CurrentValue % TJAPlayer3.Skin.Game_Tower_Ptn_Don_Standing[currentDon];
TJAPlayer3.Tx.Tower_Don_Standing[currentDon][animDon]?.t2D下中央基準描画(TJAPlayer3.Skin.Game_Tower_Don[0], TJAPlayer3.Skin.Game_Tower_Don[1]); // Center X - 50
}
else if (ctClimbAnimation.CurrentValue <= 1000)
{
int animDon = ctDonAnimation.CurrentValue % TJAPlayer3.Skin.Game_Tower_Ptn_Don_Climbing[currentDon];
int distDonX = (int)(ctClimbAnimation.CurrentValue * (TJAPlayer3.Skin.Game_Tower_Don_Move[0] / 1000f));
int distDonY = (int)(ctClimbAnimation.CurrentValue * (TJAPlayer3.Skin.Game_Tower_Don_Move[1] / 1000f));
TJAPlayer3.Tx.Tower_Don_Climbing[currentDon][animDon]?.t2D下中央基準描画(TJAPlayer3.Skin.Game_Tower_Don[0] + distDonX, TJAPlayer3.Skin.Game_Tower_Don[1] + distDonY);
// Tired Climb
if (ctIsTired && (ctClimbDuration.CurrentValue <= 1000) && TJAPlayer3.Skin.Characters_Tower_Climbing_Tired_Ptn[currentCharacter] > 0)
{
int animChar = ctClimbTiredAnimation.CurrentValue % TJAPlayer3.Skin.Characters_Tower_Climbing_Ptn[currentCharacter];
int distDonX = (int)(ctClimbDuration.CurrentValue * (TJAPlayer3.Skin.Game_Tower_Don_Move[0] / 1000f));
int distDonY = (int)(ctClimbDuration.CurrentValue * (TJAPlayer3.Skin.Game_Tower_Don_Move[1] / 1000f));
TJAPlayer3.Tx.Characters_Tower_Climbing_Tired[currentCharacter][animChar]?.t2D下中央基準描画(TJAPlayer3.Skin.Game_Tower_Don[0] + distDonX, TJAPlayer3.Skin.Game_Tower_Don[1] + distDonY);
}
// Tired Run
else if (ctIsTired && (ctClimbDuration.CurrentValue > 1000 && ctClimbDuration.CurrentValue < 1500) && TJAPlayer3.Skin.Characters_Tower_Running_Tired_Ptn[currentCharacter] > 0)
{
int animChar = ctRunTiredAnimation.CurrentValue % TJAPlayer3.Skin.Characters_Tower_Running_Ptn[currentCharacter];
int distDonX = (int)((1500 - ctClimbDuration.CurrentValue) * (TJAPlayer3.Skin.Game_Tower_Don_Move[0] / 500f));
int distDonY = (int)((1500 - ctClimbDuration.CurrentValue) * (TJAPlayer3.Skin.Game_Tower_Don_Move[1] / 500f));
TJAPlayer3.Tx.Characters_Tower_Running_Tired[currentCharacter][animChar]?.t2D下中央基準描画(TJAPlayer3.Skin.Game_Tower_Don[0] + distDonX, TJAPlayer3.Skin.Game_Tower_Don[1] + distDonY);
}
// Climb
else if ((ctClimbDuration.CurrentValue <= 1000) && TJAPlayer3.Skin.Characters_Tower_Climbing_Ptn[currentCharacter] > 0)
{
int animChar = ctClimbingAnimation.CurrentValue % TJAPlayer3.Skin.Characters_Tower_Climbing_Ptn[currentCharacter];
int distDonX = (int)(ctClimbDuration.CurrentValue * (TJAPlayer3.Skin.Game_Tower_Don_Move[0] / 1000f));
int distDonY = (int)(ctClimbDuration.CurrentValue * (TJAPlayer3.Skin.Game_Tower_Don_Move[1] / 1000f));
TJAPlayer3.Tx.Characters_Tower_Climbing[currentCharacter][animChar]?.t2D下中央基準描画(TJAPlayer3.Skin.Game_Tower_Don[0] + distDonX, TJAPlayer3.Skin.Game_Tower_Don[1] + distDonY);
}
// Run
else if ((ctClimbDuration.CurrentValue > 1000 && ctClimbDuration.CurrentValue < 1500) && TJAPlayer3.Skin.Characters_Tower_Running_Ptn[currentCharacter] > 0)
{
int animChar = ctRunningAnimation.CurrentValue % TJAPlayer3.Skin.Characters_Tower_Running_Ptn[currentCharacter];
int distDonX = (int)((1500 - ctClimbDuration.CurrentValue) * (TJAPlayer3.Skin.Game_Tower_Don_Move[0] / 500f));
int distDonY = (int)((1500 - ctClimbDuration.CurrentValue) * (TJAPlayer3.Skin.Game_Tower_Don_Move[1] / 500f));
TJAPlayer3.Tx.Characters_Tower_Running[currentCharacter][animChar]?.t2D下中央基準描画(TJAPlayer3.Skin.Game_Tower_Don[0] + distDonX, TJAPlayer3.Skin.Game_Tower_Don[1] + distDonY);
}
}
else
{
int animDon = ctDonAnimation.CurrentValue % TJAPlayer3.Skin.Game_Tower_Ptn_Don_Running[currentDon];
int distDonX = (int)((1500 - ctClimbAnimation.CurrentValue) * (TJAPlayer3.Skin.Game_Tower_Don_Move[0] / 500f));
int distDonY = (int)((1500 - ctClimbAnimation.CurrentValue) * (TJAPlayer3.Skin.Game_Tower_Don_Move[1] / 500f));
TJAPlayer3.Tx.Tower_Don_Running[currentDon][animDon]?.t2D下中央基準描画(TJAPlayer3.Skin.Game_Tower_Don[0] + distDonX, TJAPlayer3.Skin.Game_Tower_Don[1] + distDonY);
// Fail
if (TJAPlayer3.Skin.Characters_Tower_Fail_Ptn[currentCharacter] > 0 && CFloorManagement.CurrentNumberOfLives == 0)
{
int animChar = ctFailAnimation.CurrentValue % TJAPlayer3.Skin.Characters_Tower_Fail_Ptn[currentCharacter];
TJAPlayer3.Tx.Characters_Tower_Fail[currentCharacter][animChar]?.t2D下中央基準描画(TJAPlayer3.Skin.Game_Tower_Don[0], TJAPlayer3.Skin.Game_Tower_Don[1]);
}
// Tired Clear
else if (ctIsTired && stageEnded && TJAPlayer3.Skin.Characters_Tower_Clear_Tired_Ptn[currentCharacter] > 0 && CFloorManagement.CurrentNumberOfLives > 0)
{
int animChar = ctClearTiredAnimation.CurrentValue % TJAPlayer3.Skin.Characters_Tower_Clear_Tired_Ptn[currentCharacter];
TJAPlayer3.Tx.Characters_Tower_Clear_Tired[currentCharacter][animChar]?.t2D下中央基準描画(TJAPlayer3.Skin.Game_Tower_Don[0], TJAPlayer3.Skin.Game_Tower_Don[1]);
}
// Clear
else if (stageEnded && TJAPlayer3.Skin.Characters_Tower_Clear_Ptn[currentCharacter] > 0 && CFloorManagement.CurrentNumberOfLives > 0)
{
int animChar = ctClearAnimation.CurrentValue % TJAPlayer3.Skin.Characters_Tower_Clear_Ptn[currentCharacter];
TJAPlayer3.Tx.Characters_Tower_Clear[currentCharacter][animChar]?.t2D下中央基準描画(TJAPlayer3.Skin.Game_Tower_Don[0], TJAPlayer3.Skin.Game_Tower_Don[1]);
}
// Tired Stand
else if (ctIsTired && TJAPlayer3.Skin.Characters_Tower_Standing_Tired_Ptn[currentCharacter] > 0)
{
int animChar = ctStandTiredAnimation.CurrentValue % TJAPlayer3.Skin.Characters_Tower_Standing_Ptn[currentCharacter];
TJAPlayer3.Tx.Characters_Tower_Standing_Tired[currentCharacter][animChar]?.t2D下中央基準描画(TJAPlayer3.Skin.Game_Tower_Don[0], TJAPlayer3.Skin.Game_Tower_Don[1]); // Center X - 50
}
// Stand
else if (TJAPlayer3.Skin.Characters_Tower_Standing_Ptn[currentCharacter] > 0)
{
int animChar = ctStandingAnimation.CurrentValue % TJAPlayer3.Skin.Characters_Tower_Standing_Ptn[currentCharacter];
TJAPlayer3.Tx.Characters_Tower_Standing[currentCharacter][animChar]?.t2D下中央基準描画(TJAPlayer3.Skin.Game_Tower_Don[0], TJAPlayer3.Skin.Game_Tower_Don[1]); // Center X - 50
}
}
#endregion
@ -490,8 +556,16 @@ namespace TJAPlayer3
#endregion
ctSlideAnimation?.Tick();
ctClimbAnimation?.Tick();
ctDonAnimation?.TickLoop();
ctClimbDuration?.Tick();
ctStandingAnimation?.TickLoop();
ctClimbingAnimation?.TickLoop();
ctRunningAnimation?.TickLoop();
ctClearAnimation?.TickLoop();
ctFailAnimation?.TickLoop();
ctStandTiredAnimation?.TickLoop();
ctClimbTiredAnimation?.TickLoop();
ctRunTiredAnimation?.TickLoop();
ctClearTiredAnimation?.TickLoop();
#endregion
}
@ -551,9 +625,18 @@ namespace TJAPlayer3
private CCachedFontRenderer pfTowerText;
private bool bFloorChanged = false;
private int currentCharacter;
private CCounter ctSlideAnimation;
private CCounter ctDonAnimation;
private CCounter ctClimbAnimation;
private CCounter ctStandingAnimation;
private CCounter ctClimbingAnimation;
private CCounter ctRunningAnimation;
private CCounter ctClearAnimation;
private CCounter ctFailAnimation;
private CCounter ctStandTiredAnimation;
private CCounter ctClimbTiredAnimation;
private CCounter ctRunTiredAnimation;
private CCounter ctClearTiredAnimation;
private CCounter ctClimbDuration;
private CCounter ct炎;