1
0
mirror of synced 2024-11-28 01:10:53 +01:00
This commit is contained in:
0auBSQ 2023-01-27 20:46:09 +09:00
commit 97635c69bc
11 changed files with 245 additions and 12 deletions

View File

@ -4870,6 +4870,7 @@ namespace TJAPlayer3
Result_PlateShine_Y[1][i] = int.Parse(strSplit[i]); Result_PlateShine_Y[1][i] = int.Parse(strSplit[i]);
} }
} }
else if (strCommand == nameof(Result_Dan)) else if (strCommand == nameof(Result_Dan))
{ {
Result_Dan = strParam.Split(',').Select(int.Parse).ToArray(); Result_Dan = strParam.Split(',').Select(int.Parse).ToArray();
@ -4883,6 +4884,52 @@ namespace TJAPlayer3
Result_Dan_Plate_XY = strParam.Split(',').Select(int.Parse).ToArray(); Result_Dan_Plate_XY = strParam.Split(',').Select(int.Parse).ToArray();
} }
#endregion
#region AIResult
else if (strCommand == "Result_AIBattle_Batch")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
Result_AIBattle_Batch[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Result_AIBattle_Batch_Move")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
Result_AIBattle_Batch_Move[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Result_AIBattle_SectionPlate_Offset")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
Result_AIBattle_SectionPlate_Offset[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Result_AIBattle_SectionText_Offset")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
Result_AIBattle_SectionText_Offset[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Result_AIBattle_SectionText_Scale")
{
Result_AIBattle_SectionText_Scale = int.Parse(strParam);
}
else if (strCommand == "Result_AIBattle_WinFlag")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
Result_AIBattle_WinFlag[i] = int.Parse(strSplit[i]);
}
}
#endregion #endregion
#region Heya #region Heya
@ -6052,9 +6099,23 @@ namespace TJAPlayer3
public Color Result_StageText_BackColor = ColorTranslator.FromHtml("#000000"); public Color Result_StageText_BackColor = ColorTranslator.FromHtml("#000000");
//public Color Result_StageText_BackColor_Red = ColorTranslator.FromHtml("#FF0000"); //public Color Result_StageText_BackColor_Red = ColorTranslator.FromHtml("#FF0000");
public int[] Result_Dan = new int[] { 500, 500 }; public int[] Result_Dan = new int[] { 500, 500 };
public int[] Result_Dan_XY = new int[] { 0, 420 }; public int[] Result_Dan_XY = new int[] { 0, 420 };
public int[] Result_Dan_Plate_XY = new int[] { 149, 149 }; public int[] Result_Dan_Plate_XY = new int[] { 149, 149 };
#endregion
#region AIResult
public int[] Result_AIBattle_Batch = new int[] { 884, 188 };
public int[] Result_AIBattle_Batch_Move = new int[] { 104, 43 };
public int[] Result_AIBattle_SectionPlate_Offset = new int[] { 55, 8 };
public int[] Result_AIBattle_SectionText_Offset = new int[] { 110, 27 };
public int Result_AIBattle_SectionText_Scale = 13;
public int[] Result_AIBattle_WinFlag = new int[] { 946, 526 };
#endregion #endregion
#region Heya #region Heya

View File

@ -937,6 +937,16 @@ namespace TJAPlayer3
Exit_Background = TxC(EXIT + @"Background.png"); Exit_Background = TxC(EXIT + @"Background.png");
#endregion #endregion
#region 7_AIResults
Result_AIBattle_Panel_AI = TxC(RESULT + @"AIBattle\Panel_AI.png");
Result_AIBattle_Batch = TxC(RESULT + @"AIBattle\Batch.png");
Result_AIBattle_SectionPlate = TxC(RESULT + @"AIBattle\SectionPlate.png");
Result_AIBattle_WinFlag_Clear = TxC(RESULT + @"AIBattle\WinFlag_Win.png");
Result_AIBattle_WinFlag_Lose = TxC(RESULT + @"AIBattle\WinFlag_Lose.png");
#endregion
#region [7_DanResults] #region [7_DanResults]
DanResult_Background = TxC(DANRESULT + @"Background.png"); DanResult_Background = TxC(DANRESULT + @"Background.png");
@ -2064,7 +2074,6 @@ namespace TJAPlayer3
#region 6_ #region 6_
public CTexture Result_FadeIn, public CTexture Result_FadeIn,
Result_Header, Result_Header,
Result_Number, Result_Number,
Result_Panel, Result_Panel,
@ -2098,6 +2107,14 @@ namespace TJAPlayer3
Result_Mountain = new CTexture[4]; Result_Mountain = new CTexture[4];
#endregion #endregion
#region 7_AIResults
public CTexture Result_AIBattle_Panel_AI,
Result_AIBattle_Batch,
Result_AIBattle_SectionPlate,
Result_AIBattle_WinFlag_Clear,
Result_AIBattle_WinFlag_Lose;
#endregion
#region 7_ #region 7_
public CTexture Exit_Background/* , */ public CTexture Exit_Background/* , */
/*Exit_Text */; /*Exit_Text */;

View File

@ -237,6 +237,18 @@ namespace TJAPlayer3
ctRotate_Flowers = new CCounter(0, 1500, 1, TJAPlayer3.Timer); ctRotate_Flowers = new CCounter(0, 1500, 1, TJAPlayer3.Timer);
ctShine_Plate = new CCounter(0, 1000, 1, TJAPlayer3.Timer); ctShine_Plate = new CCounter(0, 1000, 1, TJAPlayer3.Timer);
ctAISectionChange = new CCounter(0, 2000, 1, TJAPlayer3.Timer);
ctAISectionChange.n現在の値 = 255;
pfAISectionText = new CPrivateFastFont(new FontFamily(TJAPlayer3.ConfigIni.FontName), TJAPlayer3.Skin.Result_AIBattle_SectionText_Scale);
ttkAISection = new CActSelect曲リスト.TitleTextureKey[TJAPlayer3.stage演奏ドラム画面.AIBattleSections.Count];
for (int i = 0; i < ttkAISection.Length; i++)
{
ttkAISection[i] = new CActSelect曲リスト.TitleTextureKey($"{i + 1}区", pfAISectionText, Color.White, Color.Black, 1280);
}
for (int i = 0; i < 2; i++) for (int i = 0; i < 2; i++)
{ {
CResultCharacter.tMenuResetTimer(CResultCharacter.ECharacterResult.NORMAL); CResultCharacter.tMenuResetTimer(CResultCharacter.ECharacterResult.NORMAL);
@ -265,7 +277,9 @@ namespace TJAPlayer3
public override void OnManagedリソースの解放() public override void OnManagedリソースの解放()
{ {
if (!base.b活性化してない) if (!base.b活性化してない)
{ {
TJAPlayer3.t安全にDisposeする(ref pfAISectionText);
base.OnManagedリソースの解放(); base.OnManagedリソースの解放();
} }
} }
@ -295,8 +309,10 @@ namespace TJAPlayer3
ctRotate_Flowers.t進行Loop(); ctRotate_Flowers.t進行Loop();
ctShine_Plate.t進行Loop(); ctShine_Plate.t進行Loop();
// this.PuchiChara.IdleAnimation(); ctAISectionChange.t進行();
// this.PuchiChara.IdleAnimation();
if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Dan && TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Tower) if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Dan && TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Tower)
{ {
#region [ Ensou result contents ] #region [ Ensou result contents ]
@ -310,7 +326,9 @@ namespace TJAPlayer3
int shift = 635; int shift = 635;
for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++) for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)
{ {
if (TJAPlayer3.ConfigIni.bAIBattleMode && i == 1) break;
// 1 if right, 0 if left // 1 if right, 0 if left
int shiftPos = (i == 1 || is2PSide) ? 1 : 0; int shiftPos = (i == 1 || is2PSide) ? 1 : 0;
int pos = i; int pos = i;
@ -609,18 +627,95 @@ namespace TJAPlayer3
} }
if (ctAISectionChange.n現在の値 == ctAISectionChange.n終了値 && TJAPlayer3.stage演奏ドラム画面.AIBattleSections.Count > 5)
{
NextAISection();
}
if (TJAPlayer3.ConfigIni.bAIBattleMode)
{
TJAPlayer3.Tx.Result_AIBattle_Panel_AI.t2D描画(TJAPlayer3.app.Device, 0, 0);
int batch_width = TJAPlayer3.Tx.Result_AIBattle_Batch.szテクスチャサイズ.Width / 3;
int batch_height = TJAPlayer3.Tx.Result_AIBattle_Batch.szテクスチャサイズ.Height;
for (int i = 0; i < TJAPlayer3.stage演奏ドラム画面.AIBattleSections.Count; i++)
{
int nowIndex = (i / 5);
int drawCount = Math.Min(TJAPlayer3.stage演奏ドラム画面.AIBattleSections.Count - (nowIndex * 5), 5);
int drawPos = i % 5;
int batch_total_width = TJAPlayer3.Skin.Result_AIBattle_Batch_Move[0] * drawCount;
var section = TJAPlayer3.stage演奏ドラム画面.AIBattleSections[drawPos];
int upDown = (drawPos % 2);
int x = TJAPlayer3.Skin.Result_AIBattle_Batch[0] + (TJAPlayer3.Skin.Result_AIBattle_Batch_Move[0] * drawPos) - (batch_total_width / 2);
int y = TJAPlayer3.Skin.Result_AIBattle_Batch[1] + (TJAPlayer3.Skin.Result_AIBattle_Batch_Move[1] * upDown);
int opacityCounter = Math.Min(ctAISectionChange.n現在の値, 255);
if (nowIndex == nNowAISection)
{
TJAPlayer3.Tx.Result_AIBattle_Batch.Opacity = opacityCounter;
TJAPlayer3.Tx.Result_AIBattle_SectionPlate.Opacity = opacityCounter;
if (TJAPlayer3.stage選曲.act曲リスト.ResolveTitleTexture(ttkAISection[i]) != null)
TJAPlayer3.stage選曲.act曲リスト.ResolveTitleTexture(ttkAISection[i]).Opacity = opacityCounter;
}
else
{
TJAPlayer3.Tx.Result_AIBattle_Batch.Opacity = 255 - opacityCounter;
TJAPlayer3.Tx.Result_AIBattle_SectionPlate.Opacity = 255 - opacityCounter;
if (TJAPlayer3.stage選曲.act曲リスト.ResolveTitleTexture(ttkAISection[i]) != null)
TJAPlayer3.stage選曲.act曲リスト.ResolveTitleTexture(ttkAISection[i]).Opacity = 255 - opacityCounter;
}
TJAPlayer3.Tx.Result_AIBattle_Batch.t2D描画(TJAPlayer3.app.Device, x, y, new RectangleF(batch_width * 0, 0, batch_width, batch_height));
switch (section.End)
{
case CStage演奏画面共通.AIBattleSection.EndType.Clear:
TJAPlayer3.Tx.Result_AIBattle_Batch.t2D描画(TJAPlayer3.app.Device, x, y, new Rectangle(batch_width * 1, 0, batch_width, batch_height));
break;
case CStage演奏画面共通.AIBattleSection.EndType.Lose:
TJAPlayer3.Tx.Result_AIBattle_Batch.t2D描画(TJAPlayer3.app.Device, x, y, new Rectangle(batch_width * 2, 0, batch_width, batch_height));
break;
}
TJAPlayer3.Tx.Result_AIBattle_Batch.Opacity = 255;
TJAPlayer3.Tx.Result_AIBattle_SectionPlate.t2D描画(TJAPlayer3.app.Device, x + TJAPlayer3.Skin.Result_AIBattle_SectionPlate_Offset[0], y + TJAPlayer3.Skin.Result_AIBattle_SectionPlate_Offset[1]);
TJAPlayer3.stage選曲.act曲リスト.ResolveTitleTexture(ttkAISection[i])?.t2D中心基準描画(TJAPlayer3.app.Device, x + TJAPlayer3.Skin.Result_AIBattle_SectionText_Offset[0], y + TJAPlayer3.Skin.Result_AIBattle_SectionText_Offset[1]);
}
if (ct全体進行.n現在の値 >= MountainAppearValue)
{
float flagScale = 2.0f - (Math.Min(Math.Max(ct全体進行.n現在の値 - MountainAppearValue, 0), 200) / 200.0f);
CTexture tex = TJAPlayer3.stage結果.bClear[0] ? TJAPlayer3.Tx.Result_AIBattle_WinFlag_Clear : TJAPlayer3.Tx.Result_AIBattle_WinFlag_Lose;
tex.vc拡大縮小倍率.X = flagScale;
tex.vc拡大縮小倍率.Y = flagScale;
tex.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Result_AIBattle_WinFlag[0], TJAPlayer3.Skin.Result_AIBattle_WinFlag[1]);
}
}
// Should be Score + 4000, to synchronize with Stage Kekka // Should be Score + 4000, to synchronize with Stage Kekka
// MountainAppearValue = 2000 + (ctゲージアニメ.n終了値 * 66) + 8360 - 85; // MountainAppearValue = 2000 + (ctゲージアニメ.n終了値 * 66) + 8360 - 85;
#region [Character related animations] #region [Character related animations]
for (int p = 0; p < TJAPlayer3.ConfigIni.nPlayerCount; p++) for (int p = 0; p < TJAPlayer3.ConfigIni.nPlayerCount; p++)
{ {
if (TJAPlayer3.ConfigIni.bAIBattleMode && p == 1) break;
int pos = p; int pos = p;
if (is2PSide) if (is2PSide)
pos = 1; pos = 1;
@ -632,7 +727,7 @@ namespace TJAPlayer3
if (!this.ctMountain_ClearIn.b進行中) if (!this.ctMountain_ClearIn.b進行中)
this.ctMountain_ClearIn.t開始(0, 515, 3, TJAPlayer3.Timer); this.ctMountain_ClearIn.t開始(0, 515, 3, TJAPlayer3.Timer);
if (gaugeValues[p] >= 80.0f) if (TJAPlayer3.stage結果.bClear[p])
{ {
if (!CResultCharacter.tIsCounterProcessing(p, CResultCharacter.ECharacterResult.CLEAR)) if (!CResultCharacter.tIsCounterProcessing(p, CResultCharacter.ECharacterResult.CLEAR))
CResultCharacter.tMenuResetTimer(p, CResultCharacter.ECharacterResult.CLEAR); CResultCharacter.tMenuResetTimer(p, CResultCharacter.ECharacterResult.CLEAR);
@ -884,6 +979,27 @@ namespace TJAPlayer3
private readonly ST文字位置[] st大文字位置; private readonly ST文字位置[] st大文字位置;
private ST文字位置[] stScoreFont; private ST文字位置[] stScoreFont;
private CActSelect曲リスト.TitleTextureKey[] ttkAISection;
private CPrivateFastFont pfAISectionText;
private CCounter ctAISectionChange;
private int nNowAISection;
private void NextAISection()
{
ctAISectionChange = new CCounter(0, 2000, 1, TJAPlayer3.Timer);
ctAISectionChange.n現在の値 = 0;
nNowAISection++;
if (nNowAISection >= Math.Ceiling(TJAPlayer3.stage演奏ドラム画面.AIBattleSections.Count / 5.0))
{
nNowAISection = 0;
}
}
public void t小文字表示(int x, int y, int num) public void t小文字表示(int x, int y, int num)
{ {
int[] nums = C変換.SeparateDigits(num); int[] nums = C変換.SeparateDigits(num);

View File

@ -834,7 +834,7 @@ namespace TJAPlayer3
{ {
#region [Mountain Bump (1P only)] #region [Mountain Bump (1P only)]
if (this.st演奏記録.Drums.fゲージ >= 80.0) if (bClear[0])
{ {
//int gaugeAnimationFactor = (this.actParameterPanel.ct全体進行.n現在の値 - (10275 + ((int)this.actParameterPanel.ctゲージアニメ[0].n終了値 * 66))) * 3; //int gaugeAnimationFactor = (this.actParameterPanel.ct全体進行.n現在の値 - (10275 + ((int)this.actParameterPanel.ctゲージアニメ[0].n終了値 * 66))) * 3;
@ -920,7 +920,7 @@ namespace TJAPlayer3
#region [Background Clouds] #region [Background Clouds]
if (this.st演奏記録.Drums.fゲージ >= 80.0 && this.actParameterPanel.ct全体進行.n現在の値 >= MountainAppearValue) if (bClear[0] && this.actParameterPanel.ct全体進行.n現在の値 >= MountainAppearValue)
{ {
CloudType = Math.Min(255, Math.Max(0, (int)this.actParameterPanel.ct全体進行.n現在の値 - (int)MountainAppearValue)); CloudType = Math.Min(255, Math.Max(0, (int)this.actParameterPanel.ct全体進行.n現在の値 - (int)MountainAppearValue));
} }
@ -950,7 +950,7 @@ namespace TJAPlayer3
#endregion #endregion
if (TJAPlayer3.stage結果.st演奏記録[0].fゲージ >= 80.0f && this.actParameterPanel.ct全体進行.n現在の値 >= MountainAppearValue) if (bClear[0] && this.actParameterPanel.ct全体進行.n現在の値 >= MountainAppearValue)
{ {
#region [Background shines] #region [Background shines]
@ -1776,6 +1776,30 @@ namespace TJAPlayer3
private int n最後に再生したHHのチャンネル番号; private int n最後に再生したHHのチャンネル番号;
private CSound rResultSound; private CSound rResultSound;
public bool[] bClear
{
get
{
if (TJAPlayer3.ConfigIni.bAIBattleMode)
{
int clearCount = 0;
for (int i = 0; i < TJAPlayer3.stage演奏ドラム画面.AIBattleSections.Count; i++)
{
if (TJAPlayer3.stage演奏ドラム画面.AIBattleSections[i].End == CStage演奏画面共通.AIBattleSection.EndType.Clear)
{
clearCount++;
}
}
return new bool[] { clearCount >= TJAPlayer3.stage演奏ドラム画面.AIBattleSections.Count / 2.0, false };
}
else
{
return new bool[] { actParameterPanel.gaugeValues[0] >= 80, actParameterPanel.gaugeValues[1] >= 80 };
}
}
}
// Cloud informations // Cloud informations
/* /*
private int[] CloudXPos = { 642, 612, 652, 1148, 1180, 112, 8, 1088, 1100, 32, 412 }; private int[] CloudXPos = { 642, 612, 652, 1148, 1180, 112, 8, 1088, 1100, 32, 412 };

View File

@ -0,0 +1,14 @@
;Included file
;あとは通常通り設定できます
Result_AIBattle_Batch=884,188
Result_AIBattle_Batch_Move=104,43
Result_AIBattle_SectionPlate_Offset=55,8
Result_AIBattle_SectionText_Offset=110,27
Result_AIBattle_SectionText_Scale=13
Result_AIBattle_WinFlag=946,526

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 584 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

View File

@ -14,4 +14,5 @@ Creator=0AuBSQ
#include HeyaConfig.ini #include HeyaConfig.ini
#include SongLoadingConfig.ini #include SongLoadingConfig.ini
#include GameConfig.ini #include GameConfig.ini
#include ResultConfig.ini #include ResultConfig.ini
#include AIResultConfig.ini