Improve Tower animations (#521)
* Improve Tower Char animations * oragnizing * Update tower texture loading
This commit is contained in:
parent
a546a9b9c1
commit
27c85fd891
@ -8507,17 +8507,6 @@ 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,
|
||||
@ -8538,14 +8527,13 @@ namespace TJAPlayer3
|
||||
Characters_Beat_SoulOut,
|
||||
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_Fail,
|
||||
Characters_Beat_Tower_Clear,
|
||||
Characters_Beat_Tower_Clear_Tired;
|
||||
public bool[] Characters_Tower_Clear_IsLooping,
|
||||
Characters_Tower_Clear_Tired_IsLooping,
|
||||
Characters_Tower_Fail_IsLooping;
|
||||
public int[] Characters_Balloon_Timer;
|
||||
public int[] Characters_Balloon_Delay;
|
||||
public int[] Characters_Balloon_FadeOut;
|
||||
@ -9148,6 +9136,7 @@ namespace TJAPlayer3
|
||||
public int[] Game_Tower_Ptn_Deco,
|
||||
Game_Tower_Ptn_Base;
|
||||
|
||||
public string[] Game_Tower_Names;
|
||||
public int Game_Tower_Ptn_Result;
|
||||
|
||||
public int Game_Tower_Ptn_Don;
|
||||
|
@ -1109,7 +1109,7 @@ namespace TJAPlayer3
|
||||
// Tower lifes
|
||||
public int LIFE;
|
||||
|
||||
public int TOWERTYPE;
|
||||
public string TOWERTYPE;
|
||||
|
||||
public int DANTICK = 0;
|
||||
public Color DANTICKCOLOR = Color.White;
|
||||
@ -7365,8 +7365,7 @@ namespace TJAPlayer3
|
||||
}
|
||||
else if (strCommandName.Equals("TOWERTYPE"))
|
||||
{
|
||||
var tt = (int)Convert.ToDouble(strCommandParam);
|
||||
this.TOWERTYPE = tt;
|
||||
this.TOWERTYPE = strCommandParam;
|
||||
}
|
||||
else if (strCommandName.Equals("DANTICK"))
|
||||
{
|
||||
|
@ -102,7 +102,7 @@ namespace TJAPlayer3
|
||||
// Tower lifes
|
||||
public int nLife;
|
||||
public int nTotalFloor;
|
||||
public int nTowerType;
|
||||
public string nTowerType;
|
||||
|
||||
public int nDanTick;
|
||||
public Color cDanTickColor;
|
||||
|
@ -83,7 +83,7 @@ namespace TJAPlayer3
|
||||
// Tower Lives
|
||||
public int nLife = 5;
|
||||
public int nTotalFloor = 140;
|
||||
public int nTowerType = 0;
|
||||
public string nTowerType;
|
||||
|
||||
// Unique id
|
||||
public CSongUniqueID uniqueId;
|
||||
|
@ -911,7 +911,11 @@ namespace TJAPlayer3
|
||||
Tower_Miss = TxC(GAME + TOWER + @$"Miss.png");
|
||||
|
||||
// Tower elements
|
||||
TJAPlayer3.Skin.Game_Tower_Ptn = System.IO.Directory.GetDirectories(CSkin.Path(BASE + GAME + TOWER + TOWERFLOOR)).Length;
|
||||
string[] towerDirectories = System.IO.Directory.GetDirectories(CSkin.Path(BASE + GAME + TOWER + TOWERFLOOR));
|
||||
TJAPlayer3.Skin.Game_Tower_Ptn = towerDirectories.Length;
|
||||
TJAPlayer3.Skin.Game_Tower_Names = new string[TJAPlayer3.Skin.Game_Tower_Ptn];
|
||||
for (int i = 0; i < TJAPlayer3.Skin.Game_Tower_Ptn; i++)
|
||||
TJAPlayer3.Skin.Game_Tower_Names[i] = new DirectoryInfo(towerDirectories[i]).Name;
|
||||
Tower_Top = new CTexture[TJAPlayer3.Skin.Game_Tower_Ptn];
|
||||
Tower_Base = new CTexture[TJAPlayer3.Skin.Game_Tower_Ptn][];
|
||||
Tower_Deco = new CTexture[TJAPlayer3.Skin.Game_Tower_Ptn][];
|
||||
@ -921,22 +925,22 @@ namespace TJAPlayer3
|
||||
|
||||
for (int i = 0; i < TJAPlayer3.Skin.Game_Tower_Ptn; i++)
|
||||
{
|
||||
TJAPlayer3.Skin.Game_Tower_Ptn_Base[i] = TJAPlayer3.t連番画像の枚数を数える(CSkin.Path(BASE + GAME + TOWER + TOWERFLOOR + i.ToString() + @$"{Path.DirectorySeparatorChar}Base{Path.DirectorySeparatorChar}"), "Base");
|
||||
TJAPlayer3.Skin.Game_Tower_Ptn_Deco[i] = TJAPlayer3.t連番画像の枚数を数える(CSkin.Path(BASE + GAME + TOWER + TOWERFLOOR + i.ToString() + @$"{Path.DirectorySeparatorChar}Deco{Path.DirectorySeparatorChar}"), "Deco");
|
||||
TJAPlayer3.Skin.Game_Tower_Ptn_Base[i] = TJAPlayer3.t連番画像の枚数を数える((towerDirectories[i] + @$"{Path.DirectorySeparatorChar}Base{Path.DirectorySeparatorChar}"), "Base");
|
||||
TJAPlayer3.Skin.Game_Tower_Ptn_Deco[i] = TJAPlayer3.t連番画像の枚数を数える((towerDirectories[i] + @$"{Path.DirectorySeparatorChar}Deco{Path.DirectorySeparatorChar}"), "Deco");
|
||||
|
||||
Tower_Top[i] = TxC(GAME + TOWER + TOWERFLOOR + i.ToString() + @$"{Path.DirectorySeparatorChar}Top.png");
|
||||
Tower_Top[i] = TxC(GAME + TOWER + TOWERFLOOR + TJAPlayer3.Skin.Game_Tower_Names[i] + @$"{Path.DirectorySeparatorChar}Top.png");
|
||||
|
||||
Tower_Base[i] = new CTexture[TJAPlayer3.Skin.Game_Tower_Ptn_Base[i]];
|
||||
Tower_Deco[i] = new CTexture[TJAPlayer3.Skin.Game_Tower_Ptn_Deco[i]];
|
||||
|
||||
for (int j = 0; j < TJAPlayer3.Skin.Game_Tower_Ptn_Base[i]; j++)
|
||||
{
|
||||
Tower_Base[i][j] = TxC(GAME + TOWER + TOWERFLOOR + i.ToString() + @$"{Path.DirectorySeparatorChar}Base{Path.DirectorySeparatorChar}Base" + j.ToString() + ".png");
|
||||
Tower_Base[i][j] = TxC(GAME + TOWER + TOWERFLOOR + TJAPlayer3.Skin.Game_Tower_Names[i] + @$"{Path.DirectorySeparatorChar}Base{Path.DirectorySeparatorChar}Base" + j.ToString() + ".png");
|
||||
}
|
||||
|
||||
for (int j = 0; j < TJAPlayer3.Skin.Game_Tower_Ptn_Deco[i]; j++)
|
||||
{
|
||||
Tower_Deco[i][j] = TxC(GAME + TOWER + TOWERFLOOR + i.ToString() + @$"{Path.DirectorySeparatorChar}Deco{Path.DirectorySeparatorChar}Deco" + j.ToString() + ".png");
|
||||
Tower_Deco[i][j] = TxC(GAME + TOWER + TOWERFLOOR + TJAPlayer3.Skin.Game_Tower_Names[i] + @$"{Path.DirectorySeparatorChar}Deco{Path.DirectorySeparatorChar}Deco" + j.ToString() + ".png");
|
||||
}
|
||||
}
|
||||
|
||||
@ -1274,6 +1278,9 @@ namespace TJAPlayer3
|
||||
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_Tower_Clear_IsLooping = new bool[TJAPlayer3.Skin.Characters_Ptn];
|
||||
TJAPlayer3.Skin.Characters_Tower_Clear_Tired_IsLooping = new bool[TJAPlayer3.Skin.Characters_Ptn];
|
||||
TJAPlayer3.Skin.Characters_Tower_Fail_IsLooping = new bool[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][];
|
||||
@ -1338,13 +1345,9 @@ namespace TJAPlayer3
|
||||
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];
|
||||
@ -1920,13 +1923,9 @@ namespace TJAPlayer3
|
||||
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;
|
||||
@ -2311,19 +2310,9 @@ namespace TJAPlayer3
|
||||
TJAPlayer3.Skin.Characters_Beat_Tower_Standing[i] = float.Parse(strParam);
|
||||
break;
|
||||
}
|
||||
case "Game_Chara_Beat_Tower_Climbing":
|
||||
case "Game_Chara_Beat_Tower_Standing_Tired":
|
||||
{
|
||||
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);
|
||||
TJAPlayer3.Skin.Characters_Beat_Tower_Standing_Tired[i] = float.Parse(strParam);
|
||||
break;
|
||||
}
|
||||
case "Game_Chara_Beat_Tower_Fail":
|
||||
@ -2331,19 +2320,9 @@ namespace TJAPlayer3
|
||||
TJAPlayer3.Skin.Characters_Beat_Tower_Fail[i] = float.Parse(strParam);
|
||||
break;
|
||||
}
|
||||
case "Game_Chara_Beat_Tower_Standing_Tired":
|
||||
case "Game_Chara_Beat_Tower_Clear":
|
||||
{
|
||||
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);
|
||||
TJAPlayer3.Skin.Characters_Beat_Tower_Clear[i] = float.Parse(strParam);
|
||||
break;
|
||||
}
|
||||
case "Game_Chara_Beat_Tower_Clear_Tired":
|
||||
@ -2351,6 +2330,21 @@ namespace TJAPlayer3
|
||||
TJAPlayer3.Skin.Characters_Beat_Tower_Clear_Tired[i] = float.Parse(strParam);
|
||||
break;
|
||||
}
|
||||
case "Game_Chara_Tower_Clear_IsLooping":
|
||||
{
|
||||
TJAPlayer3.Skin.Characters_Tower_Clear_IsLooping[i] = int.Parse(strParam) != 0;
|
||||
break;
|
||||
}
|
||||
case "Game_Chara_Tower_Clear_Tired_IsLooping":
|
||||
{
|
||||
TJAPlayer3.Skin.Characters_Tower_Clear_Tired_IsLooping[i] = int.Parse(strParam) != 0;
|
||||
break;
|
||||
}
|
||||
case "Game_Chara_Tower_Fail_IsLooping":
|
||||
{
|
||||
TJAPlayer3.Skin.Characters_Tower_Fail_IsLooping[i] = int.Parse(strParam) != 0;
|
||||
break;
|
||||
}
|
||||
case "Chara_Entry_AnimationDuration":
|
||||
{
|
||||
TJAPlayer3.Skin.Characters_Title_Entry_AnimationDuration[i] = int.Parse(strParam);
|
||||
|
@ -384,12 +384,12 @@ namespace TJAPlayer3
|
||||
int xFactor = 0;
|
||||
float yFactor = 1f;
|
||||
|
||||
int currentTowerType = TJAPlayer3.stage選曲.r確定された曲.arスコア[5].譜面情報.nTowerType;
|
||||
int currentTowerType = Array.IndexOf(TJAPlayer3.Skin.Game_Tower_Names, TJAPlayer3.stage選曲.r確定された曲.arスコア[5].譜面情報.nTowerType);
|
||||
|
||||
if (currentTowerType < 0 || currentTowerType >= TJAPlayer3.Skin.Game_Tower_Ptn_Result)
|
||||
if (currentTowerType < 0 || currentTowerType >= TJAPlayer3.Skin.Game_Tower_Ptn)
|
||||
currentTowerType = 0;
|
||||
|
||||
if (TJAPlayer3.Tx.TowerResult_Background != null && TJAPlayer3.Tx.TowerResult_Tower[currentTowerType] != null)
|
||||
if (TJAPlayer3.Tx.TowerResult_Background != null && currentTowerType < TJAPlayer3.Tx.TowerResult_Tower.Length && TJAPlayer3.Tx.TowerResult_Tower[currentTowerType] != null)
|
||||
{
|
||||
xFactor = (TJAPlayer3.Tx.TowerResult_Background.szテクスチャサイズ.Width - TJAPlayer3.Tx.TowerResult_Tower[currentTowerType].szテクスチャサイズ.Width) / 2;
|
||||
yFactor = TJAPlayer3.Tx.TowerResult_Tower[currentTowerType].szテクスチャサイズ.Height / (float)TJAPlayer3.Tx.TowerResult_Background.szテクスチャサイズ.Height;
|
||||
@ -399,7 +399,9 @@ namespace TJAPlayer3
|
||||
((ct待機.CurrentValue <= 1200 ? ct待機.CurrentValue / 10f : 120) / 120f * (TJAPlayer3.Tx.TowerResult_Background.szテクスチャサイズ.Height - TJAPlayer3.Skin.Resolution[1]));
|
||||
|
||||
TJAPlayer3.Tx.TowerResult_Background?.t2D描画(0, -1 * pos);
|
||||
TJAPlayer3.Tx.TowerResult_Tower[currentTowerType]?.t2D描画(xFactor, -1 * yFactor * pos);
|
||||
|
||||
if (currentTowerType < TJAPlayer3.Tx.TowerResult_Tower.Length)
|
||||
TJAPlayer3.Tx.TowerResult_Tower[currentTowerType]?.t2D描画(xFactor, -1 * yFactor * pos);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
@ -237,7 +237,7 @@ namespace TJAPlayer3
|
||||
|
||||
this.ctSlideAnimation = new CCounter();
|
||||
this.ctClimbDuration = new CCounter();
|
||||
this.ctStandingAnimation = new CCounter(0, 1000, (12000f * TJAPlayer3.Skin.Characters_Beat_Tower_Standing[currentCharacter]) / ((float)TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM[0] * TJAPlayer3.ConfigIni.n演奏速度 / 20), TJAPlayer3.Timer);
|
||||
this.ctStandingAnimation = new CCounter(0, 1000, (60000f / (float)(TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM[0] * TJAPlayer3.ConfigIni.n演奏速度 / 20)) * TJAPlayer3.Skin.Characters_Beat_Tower_Standing[currentCharacter] / TJAPlayer3.Skin.Characters_Tower_Standing_Ptn[currentCharacter], TJAPlayer3.Timer);
|
||||
this.ctClimbingAnimation = new CCounter();
|
||||
this.ctRunningAnimation = new CCounter();
|
||||
this.ctClearAnimation = new CCounter();
|
||||
@ -247,6 +247,8 @@ namespace TJAPlayer3
|
||||
this.ctRunTiredAnimation = new CCounter();
|
||||
this.ctClearTiredAnimation = new CCounter();
|
||||
|
||||
TowerFinished = false;
|
||||
|
||||
base.Activate();
|
||||
}
|
||||
|
||||
@ -414,7 +416,7 @@ namespace TJAPlayer3
|
||||
|
||||
int nightTime = Math.Max(140, maxFloor / 2);
|
||||
|
||||
int currentTowerType = TJAPlayer3.stage選曲.r確定された曲.arスコア[5].譜面情報.nTowerType;
|
||||
int currentTowerType = Array.IndexOf(TJAPlayer3.Skin.Game_Tower_Names, TJAPlayer3.stage選曲.r確定された曲.arスコア[5].譜面情報.nTowerType);
|
||||
|
||||
if (currentTowerType < 0 || currentTowerType >= TJAPlayer3.Skin.Game_Tower_Ptn)
|
||||
currentTowerType = 0;
|
||||
@ -432,11 +434,14 @@ namespace TJAPlayer3
|
||||
|
||||
#region [Skybox]
|
||||
|
||||
int skyboxYPosition = (int)((TJAPlayer3.Tx.Tower_Sky_Gradient.szテクスチャサイズ.Height - TJAPlayer3.Skin.Game_Tower_Sky_Gradient_Size[1]) * (1f - (currentFloorPositionMax140 + progressFactor)));
|
||||
|
||||
TJAPlayer3.Tx.Tower_Sky_Gradient?.t2D描画(TJAPlayer3.Skin.Game_Tower_Sky_Gradient[0], TJAPlayer3.Skin.Game_Tower_Sky_Gradient[1],
|
||||
new Rectangle(0, skyboxYPosition, TJAPlayer3.Skin.Game_Tower_Sky_Gradient_Size[0], TJAPlayer3.Skin.Game_Tower_Sky_Gradient_Size[1]));
|
||||
//int skyboxYPosition = (int)((TJAPlayer3.Tx.Tower_Sky_Gradient.szテクスチャサイズ.Height - TJAPlayer3.Skin.Game_Tower_Sky_Gradient_Size[1]) * (1f - (currentFloorPositionMax140 + progressFactor)));
|
||||
|
||||
//TJAPlayer3.Tx.Tower_Sky_Gradient?.t2D描画(TJAPlayer3.Skin.Game_Tower_Sky_Gradient[0], TJAPlayer3.Skin.Game_Tower_Sky_Gradient[1],
|
||||
//new Rectangle(0, skyboxYPosition, TJAPlayer3.Skin.Game_Tower_Sky_Gradient_Size[0], TJAPlayer3.Skin.Game_Tower_Sky_Gradient_Size[1]));
|
||||
|
||||
if (!TJAPlayer3.stage演奏ドラム画面.bPAUSE) DownScript.Update();
|
||||
DownScript.Draw();
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
@ -506,23 +511,32 @@ namespace TJAPlayer3
|
||||
|
||||
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_フェードアウト;
|
||||
bool stageEnded = TJAPlayer3.stage演奏ドラム画面.eフェーズID == CStage.Eフェーズ.演奏_演奏終了演出 || TJAPlayer3.stage演奏ドラム画面.eフェーズID == CStage.Eフェーズ.演奏_STAGE_CLEAR_フェードアウト || CFloorManagement.CurrentNumberOfLives == 0;
|
||||
|
||||
if (bFloorChanged == true)
|
||||
{
|
||||
float floorBPM = (float)(TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM[0] * TJAPlayer3.ConfigIni.n演奏速度 / 20);
|
||||
ctClimbDuration.Start(0, 1500, 120f / floorBPM, TJAPlayer3.Timer);
|
||||
ctStandingAnimation.Start(0, 1000, (12000f * TJAPlayer3.Skin.Characters_Beat_Tower_Standing[currentCharacter]) / floorBPM, TJAPlayer3.Timer);
|
||||
ctClimbingAnimation.Start(0, 1000, (12000f * TJAPlayer3.Skin.Characters_Beat_Tower_Climbing[currentCharacter]) / floorBPM, TJAPlayer3.Timer);
|
||||
ctRunningAnimation.Start(0, 1000, (12000f * TJAPlayer3.Skin.Characters_Beat_Tower_Running[currentCharacter]) / floorBPM, TJAPlayer3.Timer);
|
||||
ctClearAnimation.Start(0, 1000, (12000f * TJAPlayer3.Skin.Characters_Beat_Tower_Clear[currentCharacter]) / floorBPM, TJAPlayer3.Timer);
|
||||
ctFailAnimation.Start(0, 1000, (12000f * TJAPlayer3.Skin.Characters_Beat_Tower_Fail[currentCharacter]) / floorBPM, TJAPlayer3.Timer);
|
||||
ctStandTiredAnimation.Start(0, 1000, (12000f * TJAPlayer3.Skin.Characters_Beat_Tower_Standing_Tired[currentCharacter]) / floorBPM, TJAPlayer3.Timer);
|
||||
ctClimbTiredAnimation.Start(0, 1000, (12000f * TJAPlayer3.Skin.Characters_Beat_Tower_Climbing_Tired[currentCharacter]) / floorBPM, TJAPlayer3.Timer);
|
||||
ctRunTiredAnimation.Start(0, 1000, (12000f * TJAPlayer3.Skin.Characters_Beat_Tower_Running_Tired[currentCharacter]) / floorBPM, TJAPlayer3.Timer);
|
||||
ctClearTiredAnimation.Start(0, 1000, (12000f * TJAPlayer3.Skin.Characters_Beat_Tower_Clear_Tired[currentCharacter]) / floorBPM, TJAPlayer3.Timer);
|
||||
ctStandingAnimation.Start(0, 1000, (60000f / floorBPM) * TJAPlayer3.Skin.Characters_Beat_Tower_Standing[currentCharacter] / TJAPlayer3.Skin.Characters_Tower_Standing_Ptn[currentCharacter], TJAPlayer3.Timer);
|
||||
ctClimbingAnimation.Start(0, 1000, (120000f / floorBPM) / TJAPlayer3.Skin.Characters_Tower_Climbing_Ptn[currentCharacter], TJAPlayer3.Timer);
|
||||
ctRunningAnimation.Start(0, 1000, (60000f / floorBPM) / TJAPlayer3.Skin.Characters_Tower_Running_Ptn[currentCharacter], TJAPlayer3.Timer);
|
||||
ctStandTiredAnimation.Start(0, 1000, (60000f / floorBPM) * TJAPlayer3.Skin.Characters_Beat_Tower_Standing_Tired[currentCharacter] / TJAPlayer3.Skin.Characters_Tower_Standing_Tired_Ptn[currentCharacter], TJAPlayer3.Timer);
|
||||
ctClimbTiredAnimation.Start(0, 1000, (120000f / floorBPM) / TJAPlayer3.Skin.Characters_Tower_Climbing_Tired_Ptn[currentCharacter], TJAPlayer3.Timer);
|
||||
ctRunTiredAnimation.Start(0, 1000, (60000f / floorBPM) / TJAPlayer3.Skin.Characters_Tower_Running_Tired_Ptn[currentCharacter], TJAPlayer3.Timer);
|
||||
}
|
||||
if (ctClimbDuration.CurrentValue > 0 && ctClimbDuration.CurrentValue < 1500)
|
||||
|
||||
bool isClimbing = ctClimbDuration.CurrentValue > 0 && ctClimbDuration.CurrentValue < 1500;
|
||||
|
||||
if (stageEnded && !TowerFinished && !isClimbing)
|
||||
{
|
||||
float floorBPM = (float)(TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM[0] * TJAPlayer3.ConfigIni.n演奏速度 / 20);
|
||||
ctClearAnimation.Start(0, 20000, (60000f / floorBPM) * TJAPlayer3.Skin.Characters_Beat_Tower_Clear[currentCharacter] / TJAPlayer3.Skin.Characters_Tower_Clear_Ptn[currentCharacter], TJAPlayer3.Timer);
|
||||
ctClearTiredAnimation.Start(0, 20000, (60000f / floorBPM) * TJAPlayer3.Skin.Characters_Beat_Tower_Clear_Tired[currentCharacter] / TJAPlayer3.Skin.Characters_Tower_Clear_Tired_Ptn[currentCharacter], TJAPlayer3.Timer);
|
||||
ctFailAnimation.Start(0, 20000, (60000f / floorBPM) * TJAPlayer3.Skin.Characters_Beat_Tower_Fail[currentCharacter] / TJAPlayer3.Skin.Characters_Tower_Fail_Ptn[currentCharacter], TJAPlayer3.Timer);
|
||||
TowerFinished = true;
|
||||
}
|
||||
|
||||
if (isClimbing)
|
||||
{
|
||||
// Tired Climb
|
||||
if (ctIsTired && (ctClimbDuration.CurrentValue <= 1000) && TJAPlayer3.Skin.Characters_Tower_Climbing_Tired_Ptn[currentCharacter] > 0)
|
||||
@ -562,26 +576,32 @@ namespace TJAPlayer3
|
||||
// Fail
|
||||
if (TJAPlayer3.Skin.Characters_Tower_Fail_Ptn[currentCharacter] > 0 && CFloorManagement.CurrentNumberOfLives == 0)
|
||||
{
|
||||
int animChar = ctFailAnimation.CurrentValue % TJAPlayer3.Skin.Characters_Tower_Fail_Ptn[currentCharacter];
|
||||
int animChar = TJAPlayer3.Skin.Characters_Tower_Fail_IsLooping[currentCharacter] ?
|
||||
ctFailAnimation.CurrentValue % TJAPlayer3.Skin.Characters_Tower_Fail_Ptn[currentCharacter] :
|
||||
Math.Min(ctFailAnimation.CurrentValue, TJAPlayer3.Skin.Characters_Tower_Fail_Ptn[currentCharacter] - 1);
|
||||
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];
|
||||
int animChar = TJAPlayer3.Skin.Characters_Tower_Clear_Tired_IsLooping[currentCharacter] ?
|
||||
ctClearTiredAnimation.CurrentValue % TJAPlayer3.Skin.Characters_Tower_Clear_Tired_Ptn[currentCharacter] :
|
||||
Math.Min(ctClearTiredAnimation.CurrentValue, TJAPlayer3.Skin.Characters_Tower_Clear_Tired_Ptn[currentCharacter] - 1);
|
||||
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];
|
||||
int animChar = TJAPlayer3.Skin.Characters_Tower_Clear_IsLooping[currentCharacter] ?
|
||||
ctClearAnimation.CurrentValue % TJAPlayer3.Skin.Characters_Tower_Clear_Ptn[currentCharacter] :
|
||||
Math.Min(ctClearAnimation.CurrentValue, TJAPlayer3.Skin.Characters_Tower_Clear_Ptn[currentCharacter] - 1);
|
||||
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];
|
||||
int animChar = ctStandTiredAnimation.CurrentValue % TJAPlayer3.Skin.Characters_Tower_Standing_Tired_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
|
||||
@ -610,12 +630,12 @@ namespace TJAPlayer3
|
||||
ctStandingAnimation?.TickLoop();
|
||||
ctClimbingAnimation?.TickLoop();
|
||||
ctRunningAnimation?.TickLoop();
|
||||
ctClearAnimation?.TickLoop();
|
||||
ctFailAnimation?.TickLoop();
|
||||
ctStandTiredAnimation?.TickLoop();
|
||||
ctClimbTiredAnimation?.TickLoop();
|
||||
ctRunTiredAnimation?.TickLoop();
|
||||
ctClearTiredAnimation?.TickLoop();
|
||||
ctClearAnimation?.Tick();
|
||||
ctClearTiredAnimation?.Tick();
|
||||
ctFailAnimation?.Tick();
|
||||
|
||||
#endregion
|
||||
}
|
||||
@ -687,6 +707,7 @@ namespace TJAPlayer3
|
||||
private CCounter ctRunTiredAnimation;
|
||||
private CCounter ctClearTiredAnimation;
|
||||
private CCounter ctClimbDuration;
|
||||
private bool TowerFinished;
|
||||
|
||||
private CCounter ct炎;
|
||||
|
||||
|
@ -1434,7 +1434,7 @@ namespace TJAPlayer3
|
||||
int xFactor = 0;
|
||||
float yFactor = 1f;
|
||||
|
||||
int currentTowerType = TJAPlayer3.stage選曲.r確定された曲.arスコア[5].譜面情報.nTowerType;
|
||||
int currentTowerType = Array.IndexOf(TJAPlayer3.Skin.Game_Tower_Names, TJAPlayer3.stage選曲.r確定された曲.arスコア[5].譜面情報.nTowerType);
|
||||
|
||||
if (currentTowerType < 0 || currentTowerType >= TJAPlayer3.Skin.Game_Tower_Ptn_Result)
|
||||
currentTowerType = 0;
|
||||
|
Loading…
x
Reference in New Issue
Block a user