Merge branch 'main' of https://github.com/0auBSQ/OpenTaiko
This commit is contained in:
commit
97635c69bc
@ -4870,6 +4870,7 @@ namespace TJAPlayer3
|
||||
Result_PlateShine_Y[1][i] = int.Parse(strSplit[i]);
|
||||
}
|
||||
}
|
||||
|
||||
else if (strCommand == nameof(Result_Dan))
|
||||
{
|
||||
Result_Dan = strParam.Split(',').Select(int.Parse).ToArray();
|
||||
@ -4883,6 +4884,52 @@ namespace TJAPlayer3
|
||||
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
|
||||
|
||||
#region Heya
|
||||
@ -6052,9 +6099,23 @@ namespace TJAPlayer3
|
||||
public Color Result_StageText_BackColor = ColorTranslator.FromHtml("#000000");
|
||||
//public Color Result_StageText_BackColor_Red = ColorTranslator.FromHtml("#FF0000");
|
||||
|
||||
|
||||
public int[] Result_Dan = new int[] { 500, 500 };
|
||||
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
|
||||
|
||||
#region Heya
|
||||
|
@ -937,6 +937,16 @@ namespace TJAPlayer3
|
||||
Exit_Background = TxC(EXIT + @"Background.png");
|
||||
#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]
|
||||
|
||||
DanResult_Background = TxC(DANRESULT + @"Background.png");
|
||||
@ -2064,7 +2074,6 @@ namespace TJAPlayer3
|
||||
|
||||
#region 6_結果発表
|
||||
public CTexture Result_FadeIn,
|
||||
|
||||
Result_Header,
|
||||
Result_Number,
|
||||
Result_Panel,
|
||||
@ -2098,6 +2107,14 @@ namespace TJAPlayer3
|
||||
Result_Mountain = new CTexture[4];
|
||||
#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_終了画面
|
||||
public CTexture Exit_Background/* , */
|
||||
/*Exit_Text */;
|
||||
|
@ -237,6 +237,18 @@ namespace TJAPlayer3
|
||||
ctRotate_Flowers = new CCounter(0, 1500, 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++)
|
||||
{
|
||||
CResultCharacter.tMenuResetTimer(CResultCharacter.ECharacterResult.NORMAL);
|
||||
@ -265,7 +277,9 @@ namespace TJAPlayer3
|
||||
public override void OnManagedリソースの解放()
|
||||
{
|
||||
if (!base.b活性化してない)
|
||||
{
|
||||
{
|
||||
TJAPlayer3.t安全にDisposeする(ref pfAISectionText);
|
||||
|
||||
base.OnManagedリソースの解放();
|
||||
}
|
||||
}
|
||||
@ -295,8 +309,10 @@ namespace TJAPlayer3
|
||||
ctRotate_Flowers.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)
|
||||
{
|
||||
#region [ Ensou result contents ]
|
||||
@ -310,7 +326,9 @@ namespace TJAPlayer3
|
||||
int shift = 635;
|
||||
|
||||
for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)
|
||||
{
|
||||
{
|
||||
if (TJAPlayer3.ConfigIni.bAIBattleMode && i == 1) break;
|
||||
|
||||
// 1 if right, 0 if left
|
||||
int shiftPos = (i == 1 || is2PSide) ? 1 : 0;
|
||||
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
|
||||
|
||||
// MountainAppearValue = 2000 + (ctゲージアニメ.n終了値 * 66) + 8360 - 85;
|
||||
|
||||
|
||||
|
||||
|
||||
#region [Character related animations]
|
||||
|
||||
for (int p = 0; p < TJAPlayer3.ConfigIni.nPlayerCount; p++)
|
||||
{
|
||||
if (TJAPlayer3.ConfigIni.bAIBattleMode && p == 1) break;
|
||||
|
||||
int pos = p;
|
||||
if (is2PSide)
|
||||
pos = 1;
|
||||
@ -632,7 +727,7 @@ namespace TJAPlayer3
|
||||
if (!this.ctMountain_ClearIn.b進行中)
|
||||
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))
|
||||
CResultCharacter.tMenuResetTimer(p, CResultCharacter.ECharacterResult.CLEAR);
|
||||
@ -884,6 +979,27 @@ namespace TJAPlayer3
|
||||
private readonly ST文字位置[] st大文字位置;
|
||||
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)
|
||||
{
|
||||
int[] nums = C変換.SeparateDigits(num);
|
||||
|
@ -834,7 +834,7 @@ namespace TJAPlayer3
|
||||
{
|
||||
#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;
|
||||
|
||||
@ -920,7 +920,7 @@ namespace TJAPlayer3
|
||||
|
||||
#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));
|
||||
}
|
||||
@ -950,7 +950,7 @@ namespace TJAPlayer3
|
||||
|
||||
#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]
|
||||
@ -1776,6 +1776,30 @@ namespace TJAPlayer3
|
||||
private int n最後に再生したHHのチャンネル番号;
|
||||
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
|
||||
/*
|
||||
private int[] CloudXPos = { 642, 612, 652, 1148, 1180, 112, 8, 1088, 1100, 32, 412 };
|
||||
|
14
Test/System/SimpleStyle/AIResultConfig.ini
Normal file
14
Test/System/SimpleStyle/AIResultConfig.ini
Normal 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
|
BIN
Test/System/SimpleStyle/Graphics/6_Result/AIBattle/Batch.png
Normal file
BIN
Test/System/SimpleStyle/Graphics/6_Result/AIBattle/Batch.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 28 KiB |
BIN
Test/System/SimpleStyle/Graphics/6_Result/AIBattle/Panel_AI.png
Normal file
BIN
Test/System/SimpleStyle/Graphics/6_Result/AIBattle/Panel_AI.png
Normal file
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 |
@ -14,4 +14,5 @@ Creator=0AuBSQ
|
||||
#include HeyaConfig.ini
|
||||
#include SongLoadingConfig.ini
|
||||
#include GameConfig.ini
|
||||
#include ResultConfig.ini
|
||||
#include ResultConfig.ini
|
||||
#include AIResultConfig.ini
|
Loading…
Reference in New Issue
Block a user