(0.4 part 1) EXAM5,6,7 now supported (Layout automatically adapts if 4 gauges or more), dan cert optimizations, fix bugs, fix crashs (will put more informations later)
This commit is contained in:
parent
c74b3c4483
commit
592f9b7a02
@ -776,7 +776,7 @@ namespace TJAPlayer3
|
|||||||
public int Difficulty;
|
public int Difficulty;
|
||||||
public static int Number = 0;
|
public static int Number = 0;
|
||||||
public bool bTitleShow;
|
public bool bTitleShow;
|
||||||
public Dan_C[] Dan_C = new Dan_C[4];
|
public Dan_C[] Dan_C = new Dan_C[CExamInfo.cMaxExam];
|
||||||
public CWAV Wave;
|
public CWAV Wave;
|
||||||
|
|
||||||
public DanSongs()
|
public DanSongs()
|
||||||
@ -1438,7 +1438,7 @@ namespace TJAPlayer3
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture; // Change default culture to invariant, fixes (Purota)
|
Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture; // Change default culture to invariant, fixes (Purota)
|
||||||
Dan_C = new Dan_C[4];
|
Dan_C = new Dan_C[CExamInfo.cMaxExam];
|
||||||
pDan_LastChip = new CChip[1];
|
pDan_LastChip = new CChip[1];
|
||||||
DanSongs.Number = 0;
|
DanSongs.Number = 0;
|
||||||
}
|
}
|
||||||
@ -3021,7 +3021,7 @@ namespace TJAPlayer3
|
|||||||
|
|
||||||
private static readonly Regex regexForPrefixingCommaStartingLinesWithZero = new Regex(@"^,", RegexOptions.Multiline | RegexOptions.Compiled);
|
private static readonly Regex regexForPrefixingCommaStartingLinesWithZero = new Regex(@"^,", RegexOptions.Multiline | RegexOptions.Compiled);
|
||||||
private static readonly Regex regexForStrippingHeadingLines = new Regex(
|
private static readonly Regex regexForStrippingHeadingLines = new Regex(
|
||||||
@"^(?!(TITLE|LEVEL|BPM|WAVE|OFFSET|BALLOON|EXAM1|EXAM2|EXAM3|EXAM4|RENREN22|RENREN23|RENREN32|RENREN33|RENREN42|RENREN43|BALLOONNOR|BALLOONEXP|BALLOONMAS|SONGVOL|SEVOL|SCOREINIT|SCOREDIFF|COURSE|STYLE|GAME|LIFE|DEMOSTART|SIDE|SUBTITLE|SCOREMODE|GENRE|MOVIEOFFSET|BGIMAGE|BGMOVIE|HIDDENBRANCH|GAUGEINCR|LYRICFILE|#HBSCROLL|#BMSCROLL)).+\n",
|
@"^(?!(TITLE|LEVEL|BPM|WAVE|OFFSET|BALLOON|EXAM1|EXAM2|EXAM3|EXAM4|EXAM5|EXAM6|EXAM7|RENREN22|RENREN23|RENREN32|RENREN33|RENREN42|RENREN43|BALLOONNOR|BALLOONEXP|BALLOONMAS|SONGVOL|SEVOL|SCOREINIT|SCOREDIFF|COURSE|STYLE|GAME|LIFE|DEMOSTART|SIDE|SUBTITLE|SCOREMODE|GENRE|MOVIEOFFSET|BGIMAGE|BGMOVIE|HIDDENBRANCH|GAUGEINCR|LYRICFILE|#HBSCROLL|#BMSCROLL)).+\n",
|
||||||
RegexOptions.Multiline | RegexOptions.Compiled);
|
RegexOptions.Multiline | RegexOptions.Compiled);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -4676,7 +4676,10 @@ namespace TJAPlayer3
|
|||||||
strCommandParam = strArray[1].Trim();
|
strCommandParam = strArray[1].Trim();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (strCommandName.Equals("EXAM1") || strCommandName.Equals("EXAM2") || strCommandName.Equals("EXAM3") || strCommandName.Equals("EXAM4"))
|
// Adapt to EXAM until 7, optimise condition
|
||||||
|
|
||||||
|
if (strCommandName.Equals("EXAM1") || strCommandName.Equals("EXAM2") || strCommandName.Equals("EXAM3") || strCommandName.Equals("EXAM4")
|
||||||
|
|| strCommandName.Equals("EXAM5") || strCommandName.Equals("EXAM6") || strCommandName.Equals("EXAM7"))
|
||||||
{
|
{
|
||||||
if (!string.IsNullOrEmpty(strCommandParam))
|
if (!string.IsNullOrEmpty(strCommandParam))
|
||||||
{
|
{
|
||||||
|
@ -292,7 +292,7 @@ namespace TJAPlayer3
|
|||||||
this.fゲージ = 0.0f;
|
this.fゲージ = 0.0f;
|
||||||
this.nクリア = new int[5];
|
this.nクリア = new int[5];
|
||||||
this.nスコアランク = new int[5];
|
this.nスコアランク = new int[5];
|
||||||
Dan_C = new Dan_C[4];
|
Dan_C = new Dan_C[CExamInfo.cMaxExam];
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool bフルコンボじゃない
|
public bool bフルコンボじゃない
|
||||||
|
@ -681,6 +681,8 @@ namespace TJAPlayer3
|
|||||||
DanC_Gauge[i] = TxC(GAME + DANC + @"Gauge_" + type[i] + ".png");
|
DanC_Gauge[i] = TxC(GAME + DANC + @"Gauge_" + type[i] + ".png");
|
||||||
}
|
}
|
||||||
DanC_Base = TxC(GAME + DANC + @"Base.png");
|
DanC_Base = TxC(GAME + DANC + @"Base.png");
|
||||||
|
DanC_Base_Small = TxC(GAME + DANC + @"Base_Small.png");
|
||||||
|
|
||||||
DanC_Gauge_Base = TxC(GAME + DANC + @"Gauge_Base.png");
|
DanC_Gauge_Base = TxC(GAME + DANC + @"Gauge_Base.png");
|
||||||
DanC_Failed = TxC(GAME + DANC + @"Failed.png");
|
DanC_Failed = TxC(GAME + DANC + @"Failed.png");
|
||||||
DanC_Number = TxC(GAME + DANC + @"Number.png");
|
DanC_Number = TxC(GAME + DANC + @"Number.png");
|
||||||
@ -1048,6 +1050,9 @@ namespace TJAPlayer3
|
|||||||
public CTexture DanC_Background;
|
public CTexture DanC_Background;
|
||||||
public CTexture[] DanC_Gauge;
|
public CTexture[] DanC_Gauge;
|
||||||
public CTexture DanC_Base;
|
public CTexture DanC_Base;
|
||||||
|
public CTexture DanC_Base_Small;
|
||||||
|
|
||||||
|
|
||||||
public CTexture DanC_Gauge_Base;
|
public CTexture DanC_Gauge_Base;
|
||||||
public CTexture DanC_Failed;
|
public CTexture DanC_Failed;
|
||||||
public CTexture DanC_Number,
|
public CTexture DanC_Number,
|
||||||
|
@ -10,6 +10,16 @@ using System.Linq;
|
|||||||
|
|
||||||
namespace TJAPlayer3
|
namespace TJAPlayer3
|
||||||
{
|
{
|
||||||
|
static internal class CExamInfo
|
||||||
|
{
|
||||||
|
// Includes the gauge exam, DanCert max number of exams is 6
|
||||||
|
public static readonly int cMaxExam = 7;
|
||||||
|
|
||||||
|
// Max number of songs for a Dan chart
|
||||||
|
public static readonly int cExamMaxSongs = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
internal class Dan_Cert : CActivity
|
internal class Dan_Cert : CActivity
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -21,7 +31,7 @@ namespace TJAPlayer3
|
|||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
Dan_C[] Challenge = new Dan_C[4];
|
Dan_C[] Challenge = new Dan_C[CExamInfo.cMaxExam];
|
||||||
//
|
//
|
||||||
|
|
||||||
public void Start(int number)
|
public void Start(int number)
|
||||||
@ -39,10 +49,10 @@ namespace TJAPlayer3
|
|||||||
|
|
||||||
if (number == 0)
|
if (number == 0)
|
||||||
{
|
{
|
||||||
for (int i = 1; i < 4; i++)
|
for (int i = 1; i < CExamInfo.cMaxExam; i++)
|
||||||
ExamChange[i] = false;
|
ExamChange[i] = false;
|
||||||
|
|
||||||
for (int j = 1; j < 4; j++) //段位条件のループ(魂ゲージを除く) 縦(y)
|
for (int j = 1; j < CExamInfo.cMaxExam; j++) //段位条件のループ(魂ゲージを除く) 縦(y)
|
||||||
{
|
{
|
||||||
if (TJAPlayer3.stage選曲.r確定された曲.DanSongs[0].Dan_C[j] != null)
|
if (TJAPlayer3.stage選曲.r確定された曲.DanSongs[0].Dan_C[j] != null)
|
||||||
{
|
{
|
||||||
@ -74,7 +84,7 @@ namespace TJAPlayer3
|
|||||||
|
|
||||||
public override void On活性化()
|
public override void On活性化()
|
||||||
{
|
{
|
||||||
for (int i = 0; i < 4; i++)
|
for (int i = 0; i < CExamInfo.cMaxExam; i++)
|
||||||
{
|
{
|
||||||
if(TJAPlayer3.DTX.Dan_C[i] != null) Challenge[i] = new Dan_C(TJAPlayer3.DTX.Dan_C[i]);
|
if(TJAPlayer3.DTX.Dan_C[i] != null) Challenge[i] = new Dan_C(TJAPlayer3.DTX.Dan_C[i]);
|
||||||
|
|
||||||
@ -92,19 +102,25 @@ namespace TJAPlayer3
|
|||||||
|
|
||||||
FirstSectionAnime = false;
|
FirstSectionAnime = false;
|
||||||
// 始点を決定する。
|
// 始点を決定する。
|
||||||
ExamCount = 0;
|
// ExamCount = 0;
|
||||||
|
|
||||||
songsnotesremain = new int[TJAPlayer3.stage選曲.r確定された曲.DanSongs.Count];
|
songsnotesremain = new int[TJAPlayer3.stage選曲.r確定された曲.DanSongs.Count];
|
||||||
this.ct虹アニメ = new CCounter(0, TJAPlayer3.Skin.Game_Gauge_Dan_Rainbow_Ptn - 1, 30, TJAPlayer3.Timer);
|
this.ct虹アニメ = new CCounter(0, TJAPlayer3.Skin.Game_Gauge_Dan_Rainbow_Ptn - 1, 30, TJAPlayer3.Timer);
|
||||||
this.ct虹透明度 = new CCounter(0, TJAPlayer3.Skin.Game_Gauge_Rainbow_Timer - 1, 1, TJAPlayer3.Timer);
|
this.ct虹透明度 = new CCounter(0, TJAPlayer3.Skin.Game_Gauge_Rainbow_Timer - 1, 1, TJAPlayer3.Timer);
|
||||||
for (int i = 0; i < 4; i++)
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
for (int i = 0; i < CExamInfo.cMaxExam; i++)
|
||||||
{
|
{
|
||||||
if (Challenge[i] != null && Challenge[i].GetEnable() == true)
|
if (Challenge[i] != null && Challenge[i].GetEnable() == true)
|
||||||
this.ExamCount++;
|
this.ExamCount++;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
NowCymbolShowingNumber = 0;
|
NowCymbolShowingNumber = 0;
|
||||||
bExamChangeCheck = false;
|
bExamChangeCheck = false;
|
||||||
|
|
||||||
for (int i = 0; i < 4; i++)
|
for (int i = 0; i < CExamInfo.cMaxExam; i++)
|
||||||
{
|
{
|
||||||
Status[i] = new ChallengeStatus();
|
Status[i] = new ChallengeStatus();
|
||||||
Status[i].Timer_Amount = new CCounter();
|
Status[i].Timer_Amount = new CCounter();
|
||||||
@ -120,9 +136,9 @@ namespace TJAPlayer3
|
|||||||
|
|
||||||
public void Update()
|
public void Update()
|
||||||
{
|
{
|
||||||
for (int i = 0; i < 4; i++)
|
for (int i = 0; i < CExamInfo.cMaxExam; i++)
|
||||||
{
|
{
|
||||||
if (Challenge[i] == null || !Challenge[i].GetEnable()) return;
|
if (Challenge[i] == null || !Challenge[i].GetEnable()) continue;
|
||||||
var oldReached = Challenge[i].GetReached();
|
var oldReached = Challenge[i].GetReached();
|
||||||
var isChangedAmount = false;
|
var isChangedAmount = false;
|
||||||
switch (Challenge[i].GetExamType())
|
switch (Challenge[i].GetExamType())
|
||||||
@ -243,12 +259,12 @@ namespace TJAPlayer3
|
|||||||
|
|
||||||
public override void On非活性化()
|
public override void On非活性化()
|
||||||
{
|
{
|
||||||
for (int i = 0; i < 4; i++)
|
for (int i = 0; i < CExamInfo.cMaxExam; i++)
|
||||||
{
|
{
|
||||||
Challenge[i] = null;
|
Challenge[i] = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i < 4; i++)
|
for (int i = 0; i < CExamInfo.cMaxExam; i++)
|
||||||
{
|
{
|
||||||
Status[i].Timer_Amount = null;
|
Status[i].Timer_Amount = null;
|
||||||
Status[i].Timer_Gauge = null;
|
Status[i].Timer_Gauge = null;
|
||||||
@ -319,7 +335,7 @@ namespace TJAPlayer3
|
|||||||
Counter_Text_Old = Counter_Text.n現在の値;
|
Counter_Text_Old = Counter_Text.n現在の値;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i < 4; i++)
|
for (int i = 0; i < CExamInfo.cMaxExam; i++)
|
||||||
{
|
{
|
||||||
Status[i].Timer_Amount?.t進行();
|
Status[i].Timer_Amount?.t進行();
|
||||||
}
|
}
|
||||||
@ -373,10 +389,10 @@ namespace TJAPlayer3
|
|||||||
{
|
{
|
||||||
if (!bExamChangeCheck)
|
if (!bExamChangeCheck)
|
||||||
{
|
{
|
||||||
for (int i = 1; i < 4; i++)
|
for (int i = 0; i < CExamInfo.cMaxExam; i++)
|
||||||
ExamChange[i] = false;
|
ExamChange[i] = false;
|
||||||
|
|
||||||
for (int j = 1; j < 4; j++) //段位条件のループ(魂ゲージを除く) 縦(y)
|
for (int j = 0; j < CExamInfo.cMaxExam; j++) // EXAM1 check for individual conditions added back, so gauge can be EXAM2, 5, 7 whatever
|
||||||
{
|
{
|
||||||
if (TJAPlayer3.stage選曲.r確定された曲.DanSongs[0].Dan_C[j] != null)
|
if (TJAPlayer3.stage選曲.r確定された曲.DanSongs[0].Dan_C[j] != null)
|
||||||
{
|
{
|
||||||
@ -446,433 +462,441 @@ namespace TJAPlayer3
|
|||||||
|
|
||||||
public void DrawExam(Dan_C[] dan_C)
|
public void DrawExam(Dan_C[] dan_C)
|
||||||
{
|
{
|
||||||
var count = 0;
|
int count = 0;
|
||||||
for (int i = 0; i < 4; i++)
|
int countNoGauge = 0;
|
||||||
|
|
||||||
|
// Count exams, both with and without gauge
|
||||||
|
for (int i = 0; i < CExamInfo.cMaxExam; i++)
|
||||||
{
|
{
|
||||||
if (dan_C[i] != null && dan_C[i].GetEnable() == true)
|
if (dan_C[i] != null && dan_C[i].GetEnable() == true)
|
||||||
count++;
|
|
||||||
}
|
|
||||||
for (int i = 0; i < count; i++)
|
|
||||||
{
|
{
|
||||||
|
count++;
|
||||||
|
if (dan_C[i].GetExamType() != Exam.Type.Gauge)
|
||||||
|
countNoGauge++;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// Bar position on the cert
|
||||||
|
int currentPosition = -1;
|
||||||
|
|
||||||
|
for (int i = 0; i < CExamInfo.cMaxExam; i++)
|
||||||
|
{
|
||||||
|
if (dan_C[i] == null || dan_C[i].GetEnable() != true)
|
||||||
|
continue ;
|
||||||
|
|
||||||
if (dan_C[i].GetExamType() != Exam.Type.Gauge)
|
if (dan_C[i].GetExamType() != Exam.Type.Gauge)
|
||||||
{
|
{
|
||||||
#region ゲージの土台を描画する。
|
currentPosition++;
|
||||||
|
|
||||||
TJAPlayer3.Tx.DanC_Base?.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_DanC_X[count - 1], TJAPlayer3.Skin.Game_DanC_Y[count - 1] + TJAPlayer3.Skin.Game_DanC_Size[1] * i + (i * TJAPlayer3.Skin.Game_DanC_Padding), new RectangleF(0, ExamChange[i] ? 92 : 0, 1006, 92));
|
// Determines if a small bar will be used to optimise the display layout
|
||||||
|
bool isSmallGauge = currentPosition >= 3 || (countNoGauge > 3 && countNoGauge % 3 > currentPosition);
|
||||||
|
|
||||||
for (int j = 1; j < 3; j++)
|
// Y index of the gauge
|
||||||
|
int yIndex = (currentPosition % 3) + 1;
|
||||||
|
|
||||||
|
// Origin position which will be used as a reference for bar elements
|
||||||
|
int barXOffset = TJAPlayer3.Skin.Game_DanC_X[1] + (currentPosition >= 3 ? 503 : 0);
|
||||||
|
int barYOffset = TJAPlayer3.Skin.Game_DanC_Y[1] + TJAPlayer3.Skin.Game_DanC_Size[1] * yIndex + (yIndex * TJAPlayer3.Skin.Game_DanC_Padding);
|
||||||
|
int lowerBarYOffset = barYOffset + TJAPlayer3.Skin.Game_DanC_Size[1] + TJAPlayer3.Skin.Game_DanC_Padding;
|
||||||
|
|
||||||
|
// Skin X : 70
|
||||||
|
// Skin Y : 292
|
||||||
|
|
||||||
|
#region [Gauge base]
|
||||||
|
|
||||||
|
if (!isSmallGauge)
|
||||||
|
TJAPlayer3.Tx.DanC_Base?.t2D描画(TJAPlayer3.app.Device, barXOffset, barYOffset, new RectangleF(0, ExamChange[i] ? 92 : 0, 1006, 92));
|
||||||
|
else
|
||||||
|
TJAPlayer3.Tx.DanC_Base_Small?.t2D描画(TJAPlayer3.app.Device, barXOffset, barYOffset, new RectangleF(0, ExamChange[i] ? 92 : 0, 503, 92));
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region [Counter wait variables]
|
||||||
|
|
||||||
|
int counter800 = (Counter_Wait != null ? Counter_Wait.n現在の値 - 800 : 0);
|
||||||
|
int counter255M255 = (Counter_Wait != null ? 255 - (Counter_Wait.n現在の値 - (800 - 255)) : 0);
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region [Small bars]
|
||||||
|
|
||||||
|
if (ExamChange[i] == true)
|
||||||
{
|
{
|
||||||
if (TJAPlayer3.stage選曲.r確定された曲.DanSongs[j - 1].Dan_C[i] != null && TJAPlayer3.stage選曲.r確定された曲.DanSongs[NowShowingNumber].Dan_C[i] != null)
|
for (int j = 1; j < CExamInfo.cExamMaxSongs; j++)
|
||||||
{
|
{
|
||||||
if (NowShowingNumber > j)
|
|
||||||
|
if (!(TJAPlayer3.stage選曲.r確定された曲.DanSongs[j - 1].Dan_C[i] != null && TJAPlayer3.stage選曲.r確定された曲.DanSongs[NowShowingNumber].Dan_C[i] != null))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
// rainbowBetterSuccess (bool) : is current minibar better success ? | drawGaugeTypetwo (int) : Gauge style [0,2]
|
||||||
|
#region [Success type variables]
|
||||||
|
|
||||||
|
bool rainbowBetterSuccess = GetExamStatus(TJAPlayer3.stage選曲.r確定された曲.DanSongs[j - 1].Dan_C[i]) == Exam.Status.Better_Success
|
||||||
|
&& GetExamConfirmStatus(TJAPlayer3.stage選曲.r確定された曲.DanSongs[j - 1].Dan_C[i]);
|
||||||
|
|
||||||
|
int amountToPercent;
|
||||||
|
int drawGaugeTypetwo = 0;
|
||||||
|
|
||||||
|
if (!rainbowBetterSuccess)
|
||||||
{
|
{
|
||||||
TJAPlayer3.Tx.DanC_SmallBase.Opacity = 255;
|
amountToPercent = TJAPlayer3.stage選曲.r確定された曲.DanSongs[j - 1].Dan_C[i].GetAmountToPercent();
|
||||||
TJAPlayer3.Tx.DanC_Small_ExamCymbol.Opacity = 255;
|
|
||||||
|
if (amountToPercent >= 100)
|
||||||
|
drawGaugeTypetwo = 2;
|
||||||
|
else if (TJAPlayer3.stage選曲.r確定された曲.DanSongs[j - 1].Dan_C[i].GetExamRange() == Exam.Range.More && amountToPercent >= 70 || amountToPercent > 70)
|
||||||
|
drawGaugeTypetwo = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
// Small bar elements base opacity
|
||||||
|
#region [Default opacity]
|
||||||
|
|
||||||
|
TJAPlayer3.Tx.DanC_SmallBase.Opacity = 255;
|
||||||
|
TJAPlayer3.Tx.DanC_Small_ExamCymbol.Opacity = 255;
|
||||||
|
|
||||||
|
TJAPlayer3.Tx.Gauge_Dan_Rainbow[0].Opacity = 255;
|
||||||
|
TJAPlayer3.Tx.DanC_MiniNumber.Opacity = 255;
|
||||||
|
|
||||||
|
TJAPlayer3.Tx.DanC_Gauge[drawGaugeTypetwo].Opacity = 255;
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
// Currently showing song parameters
|
||||||
if (NowShowingNumber == j)
|
if (NowShowingNumber == j)
|
||||||
{
|
{
|
||||||
if (Counter_Wait != null && Counter_Wait.n現在の値 >= 800)
|
if (Counter_Wait != null && Counter_Wait.n現在の値 >= 800)
|
||||||
{
|
{
|
||||||
TJAPlayer3.Tx.DanC_SmallBase.Opacity = (Counter_Wait.n現在の値 - 800);
|
#region [counter800 opacity]
|
||||||
TJAPlayer3.Tx.DanC_Small_ExamCymbol.Opacity = (Counter_Wait.n現在の値 - 800);
|
|
||||||
|
TJAPlayer3.Tx.DanC_SmallBase.Opacity = counter800;
|
||||||
|
TJAPlayer3.Tx.DanC_Small_ExamCymbol.Opacity = counter800;
|
||||||
|
|
||||||
|
TJAPlayer3.Tx.Gauge_Dan_Rainbow[0].Opacity = counter800;
|
||||||
|
TJAPlayer3.Tx.DanC_MiniNumber.Opacity = counter800;
|
||||||
|
|
||||||
|
TJAPlayer3.Tx.DanC_Gauge[drawGaugeTypetwo].Opacity = counter800;
|
||||||
|
|
||||||
|
#endregion
|
||||||
}
|
}
|
||||||
else
|
else if (Counter_In != null || (Counter_Wait != null && Counter_Wait.n現在の値 < 800))
|
||||||
{
|
|
||||||
if (Counter_In != null || (Counter_Wait != null && Counter_Wait.n現在の値 < 800))
|
|
||||||
{
|
{
|
||||||
|
#region [0 opacity]
|
||||||
|
|
||||||
TJAPlayer3.Tx.DanC_SmallBase.Opacity = 0;
|
TJAPlayer3.Tx.DanC_SmallBase.Opacity = 0;
|
||||||
TJAPlayer3.Tx.DanC_Small_ExamCymbol.Opacity = 0;
|
TJAPlayer3.Tx.DanC_Small_ExamCymbol.Opacity = 0;
|
||||||
}
|
|
||||||
else
|
TJAPlayer3.Tx.Gauge_Dan_Rainbow[0].Opacity = 0;
|
||||||
{
|
TJAPlayer3.Tx.DanC_MiniNumber.Opacity = 0;
|
||||||
TJAPlayer3.Tx.DanC_SmallBase.Opacity = 255;
|
|
||||||
TJAPlayer3.Tx.DanC_Small_ExamCymbol.Opacity = 255;
|
TJAPlayer3.Tx.DanC_Gauge[drawGaugeTypetwo].Opacity = 0;
|
||||||
}
|
|
||||||
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Bars starting from the song N
|
||||||
if (NowShowingNumber >= j)
|
if (NowShowingNumber >= j)
|
||||||
{
|
{
|
||||||
TJAPlayer3.Tx.DanC_SmallBase?.t2D描画(TJAPlayer3.app.Device, 815, 613 + (j - 1) * 33);
|
// Determine bars width
|
||||||
TJAPlayer3.Tx.DanC_Small_ExamCymbol?.t2D描画(TJAPlayer3.app.Device, 785, 610 + (j - 1) * 33, new RectangleF(0, (j - 1) * 28, 30, 28));
|
TJAPlayer3.Tx.DanC_SmallBase.vc拡大縮小倍率.X = isSmallGauge ? 0.34f : 1f;
|
||||||
|
|
||||||
|
// 815 : Small base (70 + 745)
|
||||||
|
int miniBarPositionX = barXOffset + (isSmallGauge ? 410 : 745);
|
||||||
|
|
||||||
|
// 613 + (j - 1) * 33 : Small base (barYoffset for 3rd exam : 494 + 119 + Local song offset (j - 1) * 33)
|
||||||
|
int miniBarPositionY = (barYOffset + 119) + (j - 1) * 33 - (TJAPlayer3.Skin.Game_DanC_Size[1] + (TJAPlayer3.Skin.Game_DanC_Padding));
|
||||||
|
|
||||||
|
// Display bars
|
||||||
|
#region [Displayables]
|
||||||
|
|
||||||
|
// Display mini-bar base and small symbol
|
||||||
|
TJAPlayer3.Tx.DanC_SmallBase?.t2D描画(TJAPlayer3.app.Device, miniBarPositionX, miniBarPositionY);
|
||||||
|
TJAPlayer3.Tx.DanC_Small_ExamCymbol?.t2D描画(TJAPlayer3.app.Device, miniBarPositionX - 30, miniBarPositionY - 3, new RectangleF(0, (j - 1) * 28, 30, 28));
|
||||||
|
|
||||||
|
// Display bar content
|
||||||
|
if (rainbowBetterSuccess)
|
||||||
|
{
|
||||||
|
TJAPlayer3.Tx.Gauge_Dan_Rainbow[0].vc拡大縮小倍率.X = 0.23875f * TJAPlayer3.Tx.DanC_SmallBase.vc拡大縮小倍率.X * (isSmallGauge ? 0.94f : 1f);
|
||||||
|
TJAPlayer3.Tx.Gauge_Dan_Rainbow[0].vc拡大縮小倍率.Y = 0.35185f;
|
||||||
|
|
||||||
|
TJAPlayer3.Tx.Gauge_Dan_Rainbow[0]?.t2D描画(TJAPlayer3.app.Device, miniBarPositionX + 3, miniBarPositionY + 2,
|
||||||
|
new Rectangle(0, 0, (int)(TJAPlayer3.stage選曲.r確定された曲.DanSongs[j - 1].Dan_C[i].GetAmountToPercent() * (TJAPlayer3.Tx.Gauge_Dan_Rainbow[0].szテクスチャサイズ.Width / 100.0)), TJAPlayer3.Tx.Gauge_Dan_Rainbow[0].szテクスチャサイズ.Height));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
TJAPlayer3.Tx.DanC_Gauge[drawGaugeTypetwo].vc拡大縮小倍率.X = 0.23875f * TJAPlayer3.Tx.DanC_SmallBase.vc拡大縮小倍率.X * (isSmallGauge ? 0.94f : 1f);
|
||||||
|
TJAPlayer3.Tx.DanC_Gauge[drawGaugeTypetwo].vc拡大縮小倍率.Y = 0.35185f;
|
||||||
|
|
||||||
|
TJAPlayer3.Tx.DanC_Gauge[drawGaugeTypetwo]?.t2D描画(TJAPlayer3.app.Device, miniBarPositionX + 3, miniBarPositionY + 2,
|
||||||
|
new Rectangle(0, 0, (int)(TJAPlayer3.stage選曲.r確定された曲.DanSongs[j - 1].Dan_C[i].GetAmountToPercent() * (TJAPlayer3.Tx.DanC_Gauge[drawGaugeTypetwo].szテクスチャサイズ.Width / 100.0)), TJAPlayer3.Tx.DanC_Gauge[drawGaugeTypetwo].szテクスチャサイズ.Height));
|
||||||
|
}
|
||||||
|
|
||||||
|
// 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]);
|
||||||
|
|
||||||
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region ゲージを描画する。
|
#region [Currently playing song icons]
|
||||||
|
|
||||||
#region ゲージ横のシンボル描画しようぜ。
|
TJAPlayer3.Tx.DanC_ExamCymbol.Opacity = 255;
|
||||||
|
|
||||||
if (ExamChange[i] && NowShowingNumber != 0)
|
if (ExamChange[i] && NowShowingNumber != 0)
|
||||||
{
|
{
|
||||||
if (Counter_Wait != null)
|
if (Counter_Wait != null)
|
||||||
{
|
{
|
||||||
if (Counter_Wait.n現在の値 >= 800)
|
if (Counter_Wait.n現在の値 >= 800)
|
||||||
{
|
TJAPlayer3.Tx.DanC_ExamCymbol.Opacity = counter800;
|
||||||
TJAPlayer3.Tx.DanC_ExamCymbol.Opacity = (Counter_Wait.n現在の値 - 800);
|
|
||||||
}
|
|
||||||
else if (Counter_Wait.n現在の値 >= 800 - 255)
|
else if (Counter_Wait.n現在の値 >= 800 - 255)
|
||||||
{
|
TJAPlayer3.Tx.DanC_ExamCymbol.Opacity = counter255M255;
|
||||||
TJAPlayer3.Tx.DanC_ExamCymbol.Opacity = 255 - (Counter_Wait.n現在の値 - (800 - 255));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
TJAPlayer3.Tx.DanC_ExamCymbol.Opacity = 255;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
TJAPlayer3.Tx.DanC_ExamCymbol.Opacity = 255;
|
|
||||||
}
|
|
||||||
|
|
||||||
//75, 418
|
//75, 418
|
||||||
|
// 292 - 228 = 64
|
||||||
if (ExamChange[i])
|
if (ExamChange[i])
|
||||||
{
|
{
|
||||||
TJAPlayer3.Tx.DanC_ExamCymbol.t2D描画(TJAPlayer3.app.Device, 75, 428 + (i - 1) * 100, new RectangleF(0, 41 * NowCymbolShowingNumber, 197, 41));
|
TJAPlayer3.Tx.DanC_ExamCymbol.t2D描画(TJAPlayer3.app.Device, barXOffset + 5, lowerBarYOffset - 64, new RectangleF(0, 41 * NowCymbolShowingNumber, 197, 41));
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
for (int j = 1; j < 3; j++)
|
#region [Large bars]
|
||||||
|
|
||||||
|
// LrainbowBetterSuccess (bool) : is current minibar better success ? | LdrawGaugeTypetwo (int) : Gauge style [0,2]
|
||||||
|
#region [Success type variables]
|
||||||
|
|
||||||
|
bool LrainbowBetterSuccess = GetExamStatus(dan_C[i]) == Exam.Status.Better_Success && GetExamConfirmStatus(dan_C[i]);
|
||||||
|
|
||||||
|
int LamountToPercent;
|
||||||
|
int LdrawGaugeTypetwo = 0;
|
||||||
|
|
||||||
|
if (!LrainbowBetterSuccess)
|
||||||
{
|
{
|
||||||
if(TJAPlayer3.stage選曲.r確定された曲.DanSongs[j - 1].Dan_C[i] != null && TJAPlayer3.stage選曲.r確定された曲.DanSongs[NowShowingNumber].Dan_C[i] != null)
|
LamountToPercent = dan_C[i].GetAmountToPercent();
|
||||||
{
|
|
||||||
if (GetExamStatus(TJAPlayer3.stage選曲.r確定された曲.DanSongs[j - 1].Dan_C[i]) == Exam.Status.Better_Success && GetExamConfirmStatus(TJAPlayer3.stage選曲.r確定された曲.DanSongs[j - 1].Dan_C[i]))
|
if (LamountToPercent >= 100)
|
||||||
{
|
LdrawGaugeTypetwo = 2;
|
||||||
if (NowShowingNumber > j)
|
else if (dan_C[i].GetExamRange() == Exam.Range.More && LamountToPercent >= 70 || LamountToPercent > 70)
|
||||||
{
|
LdrawGaugeTypetwo = 1;
|
||||||
TJAPlayer3.Tx.Gauge_Dan_Rainbow[0].Opacity = 255;
|
|
||||||
TJAPlayer3.Tx.DanC_MiniNumber.Opacity = 255;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (NowShowingNumber == j)
|
|
||||||
{
|
|
||||||
if (Counter_Wait != null && Counter_Wait.n現在の値 >= 800)
|
|
||||||
{
|
|
||||||
TJAPlayer3.Tx.Gauge_Dan_Rainbow[0].Opacity = (Counter_Wait.n現在の値 - 800);
|
|
||||||
TJAPlayer3.Tx.DanC_MiniNumber.Opacity = (Counter_Wait.n現在の値 - 800);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (Counter_In != null || (Counter_Wait != null && Counter_Wait.n現在の値 < 800))
|
|
||||||
{
|
|
||||||
TJAPlayer3.Tx.Gauge_Dan_Rainbow[0].Opacity = 0;
|
|
||||||
TJAPlayer3.Tx.DanC_MiniNumber.Opacity = 0;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
TJAPlayer3.Tx.Gauge_Dan_Rainbow[0].Opacity = 255;
|
|
||||||
TJAPlayer3.Tx.DanC_MiniNumber.Opacity = 255;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (NowShowingNumber >= j)
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
// rainbowIndex : Rainbow bar texture to display (int), rainbowBase : same as rainbowIndex, but 0 if the counter is maxed
|
||||||
|
#region [Rainbow gauge counter]
|
||||||
|
|
||||||
|
int rainbowIndex = 0;
|
||||||
|
int rainbowBase = 0;
|
||||||
|
if (LrainbowBetterSuccess)
|
||||||
{
|
{
|
||||||
TJAPlayer3.Tx.Gauge_Dan_Rainbow[0].vc拡大縮小倍率.X = 0.23875f;
|
|
||||||
TJAPlayer3.Tx.Gauge_Dan_Rainbow[0].vc拡大縮小倍率.Y = 0.35185f;
|
|
||||||
|
|
||||||
TJAPlayer3.Tx.Gauge_Dan_Rainbow[0]?.t2D描画(TJAPlayer3.app.Device, 818, 615 + (j - 1) * 33,
|
|
||||||
new Rectangle(0, 0, (int)(TJAPlayer3.stage選曲.r確定された曲.DanSongs[j - 1].Dan_C[i].GetAmountToPercent() * (TJAPlayer3.Tx.Gauge_Dan_Rainbow[0].szテクスチャサイズ.Width / 100.0)), TJAPlayer3.Tx.Gauge_Dan_Rainbow[0].szテクスチャサイズ.Height));
|
|
||||||
|
|
||||||
DrawMiniNumber(TJAPlayer3.stage選曲.r確定された曲.DanSongs[j - 1].Dan_C[i].GetAmount(), 826, 636 + (j - 1) * 33, 14, TJAPlayer3.stage選曲.r確定された曲.DanSongs[j - 1].Dan_C[i]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (NowShowingNumber > j)
|
|
||||||
{
|
|
||||||
for (int l = 0; l < TJAPlayer3.Tx.DanC_Gauge.Length; l++)
|
|
||||||
TJAPlayer3.Tx.DanC_Gauge[l].Opacity = 255;
|
|
||||||
|
|
||||||
TJAPlayer3.Tx.DanC_MiniNumber.Opacity = 255;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (NowShowingNumber == j)
|
|
||||||
{
|
|
||||||
if (Counter_Wait != null && Counter_Wait.n現在の値 >= 800)
|
|
||||||
{
|
|
||||||
for (int l = 0; l < TJAPlayer3.Tx.DanC_Gauge.Length; l++)
|
|
||||||
TJAPlayer3.Tx.DanC_Gauge[l].Opacity = (Counter_Wait.n現在の値 - 800);
|
|
||||||
|
|
||||||
TJAPlayer3.Tx.DanC_MiniNumber.Opacity = (Counter_Wait.n現在の値 - 800);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (Counter_In != null || (Counter_Wait != null && Counter_Wait.n現在の値 < 800))
|
|
||||||
{
|
|
||||||
for (int l = 0; l < TJAPlayer3.Tx.DanC_Gauge.Length; l++)
|
|
||||||
TJAPlayer3.Tx.DanC_Gauge[l].Opacity = 0;
|
|
||||||
|
|
||||||
TJAPlayer3.Tx.DanC_MiniNumber.Opacity = 0;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
for (int l = 0; l < TJAPlayer3.Tx.DanC_Gauge.Length; l++)
|
|
||||||
TJAPlayer3.Tx.DanC_Gauge[l].Opacity = 255;
|
|
||||||
|
|
||||||
TJAPlayer3.Tx.DanC_MiniNumber.Opacity = 255;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (NowShowingNumber >= j)
|
|
||||||
{
|
|
||||||
var drawGaugeTypetwo = 0;
|
|
||||||
if (TJAPlayer3.stage選曲.r確定された曲.DanSongs[j - 1].Dan_C[i].GetExamRange() == Exam.Range.More)
|
|
||||||
{
|
|
||||||
if (TJAPlayer3.stage選曲.r確定された曲.DanSongs[j - 1].Dan_C[i].GetAmountToPercent() >= 100)
|
|
||||||
drawGaugeTypetwo = 2;
|
|
||||||
else if (TJAPlayer3.stage選曲.r確定された曲.DanSongs[j - 1].Dan_C[i].GetAmountToPercent() >= 70)
|
|
||||||
drawGaugeTypetwo = 1;
|
|
||||||
else
|
|
||||||
drawGaugeTypetwo = 0;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (TJAPlayer3.stage選曲.r確定された曲.DanSongs[j - 1].Dan_C[i].GetAmountToPercent() >= 100)
|
|
||||||
drawGaugeTypetwo = 2;
|
|
||||||
else if (TJAPlayer3.stage選曲.r確定された曲.DanSongs[j - 1].Dan_C[i].GetAmountToPercent() > 70)
|
|
||||||
drawGaugeTypetwo = 1;
|
|
||||||
else
|
|
||||||
drawGaugeTypetwo = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
TJAPlayer3.Tx.DanC_Gauge[drawGaugeTypetwo].vc拡大縮小倍率.X = 0.23875f;
|
|
||||||
TJAPlayer3.Tx.DanC_Gauge[drawGaugeTypetwo].vc拡大縮小倍率.Y = 0.35185f;
|
|
||||||
TJAPlayer3.Tx.DanC_Gauge[drawGaugeTypetwo]?.t2D描画(TJAPlayer3.app.Device, 818, 615 + (j - 1) * 33, new Rectangle(0, 0, (int)(TJAPlayer3.stage選曲.r確定された曲.DanSongs[j - 1].Dan_C[i].GetAmountToPercent() * (TJAPlayer3.Tx.DanC_Gauge[drawGaugeTypetwo].szテクスチャサイズ.Width / 100.0)), TJAPlayer3.Tx.DanC_Gauge[drawGaugeTypetwo].szテクスチャサイズ.Height));
|
|
||||||
|
|
||||||
DrawMiniNumber(TJAPlayer3.stage選曲.r確定された曲.DanSongs[j - 1].Dan_C[i].GetAmount(), 826, 630 + (j - 1) * 33, 14, TJAPlayer3.stage選曲.r確定された曲.DanSongs[j - 1].Dan_C[i]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (GetExamStatus(dan_C[i]) == Exam.Status.Better_Success && GetExamConfirmStatus(dan_C[i]))
|
|
||||||
{
|
|
||||||
if (ExamChange[i] && NowShowingNumber != 0)
|
|
||||||
{
|
|
||||||
if (Counter_Wait != null)
|
|
||||||
{
|
|
||||||
if (Counter_Wait.n現在の値 >= 800)
|
|
||||||
{
|
|
||||||
for (int j = 0; j < TJAPlayer3.Tx.DanC_Gauge.Length; j++)
|
|
||||||
TJAPlayer3.Tx.DanC_Gauge[j].Opacity = (Counter_Wait.n現在の値 - 800);
|
|
||||||
|
|
||||||
for (int j = 0; j < TJAPlayer3.Tx.Gauge_Dan_Rainbow.Length; j++)
|
|
||||||
TJAPlayer3.Tx.Gauge_Dan_Rainbow[j].Opacity = (Counter_Wait.n現在の値 - 800);
|
|
||||||
|
|
||||||
TJAPlayer3.Tx.DanC_Number.Opacity = (Counter_Wait.n現在の値 - 800);
|
|
||||||
TJAPlayer3.Tx.DanC_ExamRange.Opacity = (Counter_Wait.n現在の値 - 800);
|
|
||||||
TJAPlayer3.Tx.DanC_Small_Number.Opacity = (Counter_Wait.n現在の値 - 800);
|
|
||||||
}
|
|
||||||
else if (Counter_Wait.n現在の値 >= 800 - 255)
|
|
||||||
{
|
|
||||||
for (int j = 0; j < TJAPlayer3.Tx.DanC_Gauge.Length; j++)
|
|
||||||
TJAPlayer3.Tx.DanC_Gauge[j].Opacity = 255 - (Counter_Wait.n現在の値 - (800 - 255));
|
|
||||||
|
|
||||||
for (int j = 0; j < TJAPlayer3.Tx.Gauge_Dan_Rainbow.Length; j++)
|
|
||||||
TJAPlayer3.Tx.Gauge_Dan_Rainbow[j].Opacity = 255 - (Counter_Wait.n現在の値 - (800 - 255));
|
|
||||||
|
|
||||||
TJAPlayer3.Tx.DanC_Number.Opacity = 255 - (Counter_Wait.n現在の値 - (800 - 255));
|
|
||||||
TJAPlayer3.Tx.DanC_ExamRange.Opacity = 255 - (Counter_Wait.n現在の値 - (800 - 255));
|
|
||||||
TJAPlayer3.Tx.DanC_Small_Number.Opacity = 255 - (Counter_Wait.n現在の値 - (800 - 255));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
for (int j = 0; j < TJAPlayer3.Tx.DanC_Gauge.Length; j++)
|
|
||||||
TJAPlayer3.Tx.DanC_Gauge[j].Opacity = 255;
|
|
||||||
|
|
||||||
for (int j = 0; j < TJAPlayer3.Tx.Gauge_Dan_Rainbow.Length; j++)
|
|
||||||
TJAPlayer3.Tx.Gauge_Dan_Rainbow[j].Opacity = 255;
|
|
||||||
|
|
||||||
TJAPlayer3.Tx.DanC_Number.Opacity = 255;
|
|
||||||
TJAPlayer3.Tx.DanC_ExamRange.Opacity = 255;
|
|
||||||
TJAPlayer3.Tx.DanC_Small_Number.Opacity = 255;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
for (int j = 0; j < TJAPlayer3.Tx.DanC_Gauge.Length; j++)
|
|
||||||
TJAPlayer3.Tx.DanC_Gauge[j].Opacity = 255;
|
|
||||||
|
|
||||||
for (int j = 0; j < TJAPlayer3.Tx.Gauge_Dan_Rainbow.Length; j++)
|
|
||||||
TJAPlayer3.Tx.Gauge_Dan_Rainbow[j].Opacity = 255;
|
|
||||||
|
|
||||||
TJAPlayer3.Tx.DanC_Number.Opacity = 255;
|
|
||||||
TJAPlayer3.Tx.DanC_ExamRange.Opacity = 255;
|
|
||||||
TJAPlayer3.Tx.DanC_Small_Number.Opacity = 255;
|
|
||||||
}
|
|
||||||
|
|
||||||
this.ct虹アニメ.t進行Loop();
|
this.ct虹アニメ.t進行Loop();
|
||||||
this.ct虹透明度.t進行Loop();
|
this.ct虹透明度.t進行Loop();
|
||||||
|
|
||||||
int 虹ベース = ct虹アニメ.n現在の値;
|
rainbowIndex = this.ct虹アニメ.n現在の値;
|
||||||
if (虹ベース == ct虹アニメ.n終了値) 虹ベース = 0;
|
|
||||||
|
|
||||||
TJAPlayer3.Tx.Gauge_Dan_Rainbow[this.ct虹アニメ.n現在の値].vc拡大縮小倍率.X = ExamChange[i] ? 0.663333333f : 1.0f;
|
rainbowBase = rainbowIndex;
|
||||||
TJAPlayer3.Tx.Gauge_Dan_Rainbow[0].vc拡大縮小倍率.X = ExamChange[i] ? 0.663333333f : 1.0f;
|
if (rainbowBase == ct虹アニメ.n終了値) rainbowBase = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region [Default opacity]
|
||||||
|
|
||||||
|
TJAPlayer3.Tx.DanC_Gauge[LdrawGaugeTypetwo].Opacity = 255;
|
||||||
|
|
||||||
|
TJAPlayer3.Tx.Gauge_Dan_Rainbow[rainbowIndex].Opacity = 255;
|
||||||
|
|
||||||
|
TJAPlayer3.Tx.DanC_Number.Opacity = 255;
|
||||||
|
TJAPlayer3.Tx.DanC_ExamRange.Opacity = 255;
|
||||||
|
TJAPlayer3.Tx.DanC_Small_Number.Opacity = 255;
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
if (ExamChange[i] && NowShowingNumber != 0 && Counter_Wait != null)
|
||||||
|
{
|
||||||
|
if (Counter_Wait.n現在の値 >= 800)
|
||||||
|
{
|
||||||
|
#region [counter800 opacity]
|
||||||
|
|
||||||
|
TJAPlayer3.Tx.DanC_Gauge[LdrawGaugeTypetwo].Opacity = counter800;
|
||||||
|
|
||||||
|
TJAPlayer3.Tx.Gauge_Dan_Rainbow[rainbowIndex].Opacity = counter800;
|
||||||
|
|
||||||
|
TJAPlayer3.Tx.DanC_Number.Opacity = counter800;
|
||||||
|
TJAPlayer3.Tx.DanC_ExamRange.Opacity = counter800;
|
||||||
|
TJAPlayer3.Tx.DanC_Small_Number.Opacity = counter800;
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
else if (Counter_Wait.n現在の値 >= 800 - 255)
|
||||||
|
{
|
||||||
|
#region [counter255M255 opacity]
|
||||||
|
|
||||||
|
TJAPlayer3.Tx.DanC_Gauge[LdrawGaugeTypetwo].Opacity = counter255M255;
|
||||||
|
|
||||||
|
TJAPlayer3.Tx.Gauge_Dan_Rainbow[rainbowIndex].Opacity = counter255M255;
|
||||||
|
|
||||||
|
TJAPlayer3.Tx.DanC_Number.Opacity = counter255M255;
|
||||||
|
TJAPlayer3.Tx.DanC_ExamRange.Opacity = counter255M255;
|
||||||
|
TJAPlayer3.Tx.DanC_Small_Number.Opacity = counter255M255;
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#region [Displayables]
|
||||||
|
|
||||||
|
// Non individual : 209 / 650 : 0.32154f
|
||||||
|
// Individual : 97 / 432 : 0.22454f
|
||||||
|
|
||||||
|
float xExtend = ExamChange[i] ? (isSmallGauge ? 0.215f * 0.663333333f : 0.663333333f) : (isSmallGauge ? 0.32154f : 1.0f);
|
||||||
|
|
||||||
|
if (LrainbowBetterSuccess)
|
||||||
|
{
|
||||||
|
#region [Rainbow gauge display]
|
||||||
|
|
||||||
|
TJAPlayer3.Tx.Gauge_Dan_Rainbow[rainbowIndex].vc拡大縮小倍率.X = xExtend;
|
||||||
|
|
||||||
|
// Reset base since it was used for minibars
|
||||||
|
TJAPlayer3.Tx.Gauge_Dan_Rainbow[0].vc拡大縮小倍率.X = xExtend;
|
||||||
TJAPlayer3.Tx.Gauge_Dan_Rainbow[0].vc拡大縮小倍率.Y = 1.0f;
|
TJAPlayer3.Tx.Gauge_Dan_Rainbow[0].vc拡大縮小倍率.Y = 1.0f;
|
||||||
|
|
||||||
if (Counter_Wait != null && !(Counter_Wait.n現在の値 <= 1055 && Counter_Wait.n現在の値 >= 800 - 255))
|
if (Counter_Wait != null && !(Counter_Wait.n現在の値 <= 1055 && Counter_Wait.n現在の値 >= 800 - 255))
|
||||||
{
|
{
|
||||||
TJAPlayer3.Tx.Gauge_Dan_Rainbow[this.ct虹アニメ.n現在の値].Opacity = 255;
|
TJAPlayer3.Tx.Gauge_Dan_Rainbow[rainbowIndex].Opacity = 255;
|
||||||
}
|
}
|
||||||
TJAPlayer3.Tx.Gauge_Dan_Rainbow[this.ct虹アニメ.n現在の値]?.t2D拡大率考慮下基準描画(TJAPlayer3.app.Device,
|
|
||||||
TJAPlayer3.Skin.Game_DanC_X[count - 1] + TJAPlayer3.Skin.Game_DanC_Offset[0], TJAPlayer3.Skin.Game_DanC_Y[count - 1] + TJAPlayer3.Skin.Game_DanC_Size[1] * (i + 1) + ((i + 1) * TJAPlayer3.Skin.Game_DanC_Padding) - TJAPlayer3.Skin.Game_DanC_Offset[1],
|
TJAPlayer3.Tx.Gauge_Dan_Rainbow[rainbowIndex]?.t2D拡大率考慮下基準描画(TJAPlayer3.app.Device,
|
||||||
new Rectangle(0, 0, (int)(dan_C[i].GetAmountToPercent() * (TJAPlayer3.Tx.Gauge_Dan_Rainbow[this.ct虹アニメ.n現在の値].szテクスチャサイズ.Width / 100.0)), TJAPlayer3.Tx.Gauge_Dan_Rainbow[this.ct虹アニメ.n現在の値].szテクスチャサイズ.Height));
|
barXOffset + TJAPlayer3.Skin.Game_DanC_Offset[0], lowerBarYOffset - TJAPlayer3.Skin.Game_DanC_Offset[1],
|
||||||
|
new Rectangle(0, 0, (int)(dan_C[i].GetAmountToPercent() * (TJAPlayer3.Tx.Gauge_Dan_Rainbow[rainbowIndex].szテクスチャサイズ.Width / 100.0)), TJAPlayer3.Tx.Gauge_Dan_Rainbow[rainbowIndex].szテクスチャサイズ.Height));
|
||||||
|
|
||||||
if (Counter_Wait != null && !(Counter_Wait.n現在の値 <= 1055 && Counter_Wait.n現在の値 >= 800 - 255))
|
if (Counter_Wait != null && !(Counter_Wait.n現在の値 <= 1055 && Counter_Wait.n現在の値 >= 800 - 255))
|
||||||
{
|
{
|
||||||
TJAPlayer3.Tx.Gauge_Dan_Rainbow[虹ベース].Opacity = (ct虹透明度.n現在の値 * 255 / (int)ct虹透明度.n終了値) / 1;
|
TJAPlayer3.Tx.Gauge_Dan_Rainbow[rainbowBase].Opacity = (ct虹透明度.n現在の値 * 255 / (int)ct虹透明度.n終了値) / 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
TJAPlayer3.Tx.Gauge_Dan_Rainbow[虹ベース]?.t2D拡大率考慮下基準描画(TJAPlayer3.app.Device,
|
TJAPlayer3.Tx.Gauge_Dan_Rainbow[rainbowBase]?.t2D拡大率考慮下基準描画(TJAPlayer3.app.Device,
|
||||||
TJAPlayer3.Skin.Game_DanC_X[count - 1] + TJAPlayer3.Skin.Game_DanC_Offset[0], TJAPlayer3.Skin.Game_DanC_Y[count - 1] + TJAPlayer3.Skin.Game_DanC_Size[1] * (i + 1) + ((i + 1) * TJAPlayer3.Skin.Game_DanC_Padding) - TJAPlayer3.Skin.Game_DanC_Offset[1],
|
barXOffset + TJAPlayer3.Skin.Game_DanC_Offset[0], lowerBarYOffset - TJAPlayer3.Skin.Game_DanC_Offset[1],
|
||||||
new Rectangle(0, 0, (int)(dan_C[i].GetAmountToPercent() * (TJAPlayer3.Tx.Gauge_Dan_Rainbow[虹ベース].szテクスチャサイズ.Width / 100.0)), TJAPlayer3.Tx.Gauge_Dan_Rainbow[this.ct虹アニメ.n現在の値].szテクスチャサイズ.Height));
|
new Rectangle(0, 0, (int)(dan_C[i].GetAmountToPercent() * (TJAPlayer3.Tx.Gauge_Dan_Rainbow[rainbowBase].szテクスチャサイズ.Width / 100.0)), TJAPlayer3.Tx.Gauge_Dan_Rainbow[rainbowIndex].szテクスチャサイズ.Height));
|
||||||
|
|
||||||
|
#endregion
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if(ExamChange[i] && NowShowingNumber != 0)
|
#region [Regular gauge display]
|
||||||
{
|
|
||||||
if (Counter_Wait != null)
|
|
||||||
{
|
|
||||||
if (Counter_Wait.n現在の値 >= 800)
|
|
||||||
{
|
|
||||||
for (int j = 0; j < TJAPlayer3.Tx.DanC_Gauge.Length; j++)
|
|
||||||
TJAPlayer3.Tx.DanC_Gauge[j].Opacity = (Counter_Wait.n現在の値 - 800);
|
|
||||||
|
|
||||||
TJAPlayer3.Tx.DanC_Number.Opacity = (Counter_Wait.n現在の値 - 800);
|
TJAPlayer3.Tx.DanC_Gauge[LdrawGaugeTypetwo].vc拡大縮小倍率.X = xExtend;
|
||||||
TJAPlayer3.Tx.DanC_ExamRange.Opacity = (Counter_Wait.n現在の値 - 800);
|
TJAPlayer3.Tx.DanC_Gauge[LdrawGaugeTypetwo].vc拡大縮小倍率.Y = 1.0f;
|
||||||
TJAPlayer3.Tx.DanC_Small_Number.Opacity = (Counter_Wait.n現在の値 - 800);
|
TJAPlayer3.Tx.DanC_Gauge[LdrawGaugeTypetwo]?.t2D拡大率考慮下基準描画(TJAPlayer3.app.Device,
|
||||||
}
|
barXOffset + TJAPlayer3.Skin.Game_DanC_Offset[0], lowerBarYOffset - TJAPlayer3.Skin.Game_DanC_Offset[1],
|
||||||
else if (Counter_Wait.n現在の値 >= 800 - 255)
|
new Rectangle(0, 0, (int)(dan_C[i].GetAmountToPercent() * (TJAPlayer3.Tx.DanC_Gauge[LdrawGaugeTypetwo].szテクスチャサイズ.Width / 100.0)), TJAPlayer3.Tx.DanC_Gauge[LdrawGaugeTypetwo].szテクスチャサイズ.Height));
|
||||||
{
|
|
||||||
for (int j = 0; j < TJAPlayer3.Tx.DanC_Gauge.Length; j++)
|
|
||||||
TJAPlayer3.Tx.DanC_Gauge[j].Opacity = 255 - (Counter_Wait.n現在の値 - (800 - 255));
|
|
||||||
|
|
||||||
TJAPlayer3.Tx.DanC_Number.Opacity = 255 - (Counter_Wait.n現在の値 - (800 - 255));
|
|
||||||
TJAPlayer3.Tx.DanC_ExamRange.Opacity = 255 - (Counter_Wait.n現在の値 - (800 - 255));
|
|
||||||
TJAPlayer3.Tx.DanC_Small_Number.Opacity = 255 - (Counter_Wait.n現在の値 - (800 - 255));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
for (int j = 0; j < TJAPlayer3.Tx.DanC_Gauge.Length; j++)
|
|
||||||
TJAPlayer3.Tx.DanC_Gauge[j].Opacity = 255;
|
|
||||||
|
|
||||||
TJAPlayer3.Tx.DanC_Number.Opacity = 255;
|
|
||||||
TJAPlayer3.Tx.DanC_ExamRange.Opacity = 255;
|
|
||||||
TJAPlayer3.Tx.DanC_Small_Number.Opacity = 255;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
for (int j = 0; j < TJAPlayer3.Tx.DanC_Gauge.Length; j++)
|
|
||||||
TJAPlayer3.Tx.DanC_Gauge[j].Opacity = 255;
|
|
||||||
|
|
||||||
TJAPlayer3.Tx.DanC_Number.Opacity = 255;
|
|
||||||
TJAPlayer3.Tx.DanC_ExamRange.Opacity = 255;
|
|
||||||
TJAPlayer3.Tx.DanC_Small_Number.Opacity = 255;
|
|
||||||
}
|
|
||||||
|
|
||||||
var drawGaugeType = 0;
|
|
||||||
if (dan_C[i].GetExamRange() == Exam.Range.More)
|
|
||||||
{
|
|
||||||
if (dan_C[i].GetAmountToPercent() >= 100)
|
|
||||||
drawGaugeType = 2;
|
|
||||||
else if (dan_C[i].GetAmountToPercent() >= 70)
|
|
||||||
drawGaugeType = 1;
|
|
||||||
else
|
|
||||||
drawGaugeType = 0;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (dan_C[i].GetAmountToPercent() >= 100)
|
|
||||||
drawGaugeType = 2;
|
|
||||||
else if (dan_C[i].GetAmountToPercent() > 70)
|
|
||||||
drawGaugeType = 1;
|
|
||||||
else
|
|
||||||
drawGaugeType = 0;
|
|
||||||
}
|
|
||||||
TJAPlayer3.Tx.DanC_Gauge[drawGaugeType].vc拡大縮小倍率.X = ExamChange[i] ? 0.663333333f : 1.0f;
|
|
||||||
TJAPlayer3.Tx.DanC_Gauge[drawGaugeType].vc拡大縮小倍率.Y = 1.0f;
|
|
||||||
TJAPlayer3.Tx.DanC_Gauge[drawGaugeType]?.t2D拡大率考慮下基準描画(TJAPlayer3.app.Device,
|
|
||||||
TJAPlayer3.Skin.Game_DanC_X[count - 1] + TJAPlayer3.Skin.Game_DanC_Offset[0], TJAPlayer3.Skin.Game_DanC_Y[count - 1] + TJAPlayer3.Skin.Game_DanC_Size[1] * (i + 1) + ((i + 1) * TJAPlayer3.Skin.Game_DanC_Padding) - TJAPlayer3.Skin.Game_DanC_Offset[1],
|
|
||||||
new Rectangle(0, 0, (int)(dan_C[i].GetAmountToPercent() * (TJAPlayer3.Tx.DanC_Gauge[drawGaugeType].szテクスチャサイズ.Width / 100.0)), TJAPlayer3.Tx.DanC_Gauge[drawGaugeType].szテクスチャサイズ.Height));
|
|
||||||
|
|
||||||
|
#endregion
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region 現在の値を描画する。
|
|
||||||
var nowAmount = 0;
|
#endregion
|
||||||
|
|
||||||
|
#region [Print the current value number]
|
||||||
|
|
||||||
|
int nowAmount = dan_C[i].Amount;
|
||||||
|
|
||||||
if (dan_C[i].GetExamRange() == Exam.Range.Less)
|
if (dan_C[i].GetExamRange() == Exam.Range.Less)
|
||||||
{
|
|
||||||
nowAmount = dan_C[i].Value[0] - dan_C[i].Amount;
|
nowAmount = dan_C[i].Value[0] - dan_C[i].Amount;
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
nowAmount = dan_C[i].Amount;
|
|
||||||
}
|
|
||||||
if (nowAmount < 0) nowAmount = 0;
|
if (nowAmount < 0) nowAmount = 0;
|
||||||
|
|
||||||
|
float numberXScale = isSmallGauge ? TJAPlayer3.Skin.Game_DanC_Number_Small_Scale * 0.6f : TJAPlayer3.Skin.Game_DanC_Number_Small_Scale;
|
||||||
|
float numberYScale = isSmallGauge ? TJAPlayer3.Skin.Game_DanC_Number_Small_Scale * 0.8f : TJAPlayer3.Skin.Game_DanC_Number_Small_Scale;
|
||||||
|
int numberPadding = (int)(TJAPlayer3.Skin.Game_DanC_Number_Padding * (isSmallGauge ? 0.6f : 1f));
|
||||||
|
|
||||||
DrawNumber(nowAmount,
|
DrawNumber(nowAmount,
|
||||||
TJAPlayer3.Skin.Game_DanC_X[count - 1] + TJAPlayer3.Skin.Game_DanC_Number_Small_Number_Offset[0],
|
barXOffset + TJAPlayer3.Skin.Game_DanC_Number_Small_Number_Offset[0],
|
||||||
TJAPlayer3.Skin.Game_DanC_Y[count - 1] + TJAPlayer3.Skin.Game_DanC_Size[1] * (i + 1) + ((i + 1) * TJAPlayer3.Skin.Game_DanC_Padding) - TJAPlayer3.Skin.Game_DanC_Number_Small_Number_Offset[1],
|
lowerBarYOffset - TJAPlayer3.Skin.Game_DanC_Number_Small_Number_Offset[1],
|
||||||
TJAPlayer3.Skin.Game_DanC_Number_Padding,
|
numberPadding,
|
||||||
true,
|
true,
|
||||||
Challenge[i],
|
Challenge[i],
|
||||||
TJAPlayer3.Skin.Game_DanC_Number_Small_Scale,
|
numberXScale,
|
||||||
TJAPlayer3.Skin.Game_DanC_Number_Small_Scale,
|
numberYScale,
|
||||||
(Status[i].Timer_Amount != null ? ScoreScale[Status[i].Timer_Amount.n現在の値] : 0f));
|
(Status[i].Timer_Amount != null ? ScoreScale[Status[i].Timer_Amount.n現在の値] : 0f));
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region 条件の文字を描画する。
|
#region [Dan conditions display]
|
||||||
var offset = TJAPlayer3.Skin.Game_DanC_Exam_Offset[0];
|
|
||||||
//offset -= CDTXMania.Skin.Game_DanC_ExamRange_Padding;
|
int offset = TJAPlayer3.Skin.Game_DanC_Exam_Offset[0];
|
||||||
// 条件の範囲
|
|
||||||
TJAPlayer3.Tx.DanC_ExamType.vc拡大縮小倍率.X = 1.0f;
|
TJAPlayer3.Tx.DanC_ExamType.vc拡大縮小倍率.X = 1.0f;
|
||||||
TJAPlayer3.Tx.DanC_ExamType.vc拡大縮小倍率.Y = 1.0f;
|
TJAPlayer3.Tx.DanC_ExamType.vc拡大縮小倍率.Y = 1.0f;
|
||||||
|
|
||||||
TJAPlayer3.Tx.DanC_ExamRange?.t2D拡大率考慮下基準描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_DanC_X[count - 1] + offset - TJAPlayer3.Tx.DanC_ExamRange.szテクスチャサイズ.Width, TJAPlayer3.Skin.Game_DanC_Y[count - 1] + TJAPlayer3.Skin.Game_DanC_Size[1] * (i + 1) + ((i + 1) * TJAPlayer3.Skin.Game_DanC_Padding) - TJAPlayer3.Skin.Game_DanC_Exam_Offset[1], new Rectangle(0, TJAPlayer3.Skin.Game_DanC_ExamRange_Size[1] * (int)dan_C[i].GetExamRange(), TJAPlayer3.Skin.Game_DanC_ExamRange_Size[0], TJAPlayer3.Skin.Game_DanC_ExamRange_Size[1]));
|
// Exam range (Less than/More)
|
||||||
//offset -= CDTXMania.Skin.Game_DanC_ExamRange_Padding;
|
TJAPlayer3.Tx.DanC_ExamRange?.t2D拡大率考慮下基準描画(TJAPlayer3.app.Device,
|
||||||
|
barXOffset + offset - TJAPlayer3.Tx.DanC_ExamRange.szテクスチャサイズ.Width,
|
||||||
|
lowerBarYOffset - TJAPlayer3.Skin.Game_DanC_Exam_Offset[1],
|
||||||
|
new Rectangle(0, TJAPlayer3.Skin.Game_DanC_ExamRange_Size[1] * (int)dan_C[i].GetExamRange(), TJAPlayer3.Skin.Game_DanC_ExamRange_Size[0], TJAPlayer3.Skin.Game_DanC_ExamRange_Size[1]));
|
||||||
|
|
||||||
offset -= TJAPlayer3.Skin.Game_DanC_ExamRange_Padding;
|
offset -= TJAPlayer3.Skin.Game_DanC_ExamRange_Padding;
|
||||||
|
|
||||||
// 条件の数字
|
// Condition number
|
||||||
DrawNumber(
|
DrawNumber(
|
||||||
dan_C[i].Value[0],
|
dan_C[i].Value[0],
|
||||||
TJAPlayer3.Skin.Game_DanC_X[count - 1] + offset - dan_C[i].Value[0].ToString().Length * (int)(TJAPlayer3.Skin.Game_DanC_Number_Small_Padding * TJAPlayer3.Skin.Game_DanC_Exam_Number_Scale),
|
barXOffset + offset - dan_C[i].Value[0].ToString().Length * (int)(TJAPlayer3.Skin.Game_DanC_Number_Small_Padding * TJAPlayer3.Skin.Game_DanC_Exam_Number_Scale),
|
||||||
TJAPlayer3.Skin.Game_DanC_Y[count - 1] + TJAPlayer3.Skin.Game_DanC_Size[1] * (i + 1) + ((i + 1) * TJAPlayer3.Skin.Game_DanC_Padding) - TJAPlayer3.Skin.Game_DanC_Exam_Offset[1] - 1,
|
lowerBarYOffset - TJAPlayer3.Skin.Game_DanC_Exam_Offset[1] - 1,
|
||||||
(int)(TJAPlayer3.Skin.Game_DanC_Number_Small_Padding * TJAPlayer3.Skin.Game_DanC_Exam_Number_Scale),
|
(int)(TJAPlayer3.Skin.Game_DanC_Number_Small_Padding * TJAPlayer3.Skin.Game_DanC_Exam_Number_Scale),
|
||||||
false,
|
false,
|
||||||
Challenge[i]);
|
Challenge[i]);
|
||||||
|
|
||||||
//offset -= CDTXMania.Skin.Game_DanC_Number_Small_Padding * (dan_C[i].Value[0].ToString().Length + 1);
|
|
||||||
offset -= TJAPlayer3.Skin.Game_DanC_Number_Small_Padding * (dan_C[i].Value[0].ToString().Length);
|
|
||||||
|
|
||||||
// 条件の種類
|
// Exam type flag
|
||||||
TJAPlayer3.Tx.DanC_ExamType?.t2D拡大率考慮下基準描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_DanC_X[1] + TJAPlayer3.Skin.Game_DanC_Exam_Offset[0] - TJAPlayer3.Tx.DanC_ExamType.szテクスチャサイズ.Width + 22, TJAPlayer3.Skin.Game_DanC_Y[count - 1] + TJAPlayer3.Skin.Game_DanC_Size[1] * (i + 1) + ((i + 1) * TJAPlayer3.Skin.Game_DanC_Padding) - TJAPlayer3.Skin.Game_DanC_Exam_Offset[1] - 48, new Rectangle(0, TJAPlayer3.Skin.Game_DanC_ExamType_Size[1] * (int)dan_C[i].GetExamType(), TJAPlayer3.Skin.Game_DanC_ExamType_Size[0], TJAPlayer3.Skin.Game_DanC_ExamType_Size[1]));
|
TJAPlayer3.Tx.DanC_ExamType?.t2D拡大率考慮下基準描画(TJAPlayer3.app.Device,
|
||||||
|
barXOffset + TJAPlayer3.Skin.Game_DanC_Exam_Offset[0] - TJAPlayer3.Tx.DanC_ExamType.szテクスチャサイズ.Width + 22,
|
||||||
|
lowerBarYOffset - TJAPlayer3.Skin.Game_DanC_Exam_Offset[1] - 48,
|
||||||
|
new Rectangle(0, TJAPlayer3.Skin.Game_DanC_ExamType_Size[1] * (int)dan_C[i].GetExamType(), TJAPlayer3.Skin.Game_DanC_ExamType_Size[0], TJAPlayer3.Skin.Game_DanC_ExamType_Size[1]));
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region 条件達成失敗の画像を描画する。
|
#region [Failed condition box]
|
||||||
|
|
||||||
|
TJAPlayer3.Tx.DanC_Failed.vc拡大縮小倍率.X = isSmallGauge ? 0.33f : 1f;
|
||||||
|
|
||||||
if (dan_C[i].GetReached())
|
if (dan_C[i].GetReached())
|
||||||
{
|
{
|
||||||
TJAPlayer3.Tx.DanC_Failed.t2D拡大率考慮下基準描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_DanC_X[count - 1] + TJAPlayer3.Skin.Game_DanC_Offset[0], TJAPlayer3.Skin.Game_DanC_Y[count - 1] + TJAPlayer3.Skin.Game_DanC_Size[1] * (i + 1) + ((i + 1) * TJAPlayer3.Skin.Game_DanC_Padding) - TJAPlayer3.Skin.Game_DanC_Offset[1]);
|
TJAPlayer3.Tx.DanC_Failed.t2D拡大率考慮下基準描画(TJAPlayer3.app.Device,
|
||||||
|
barXOffset + TJAPlayer3.Skin.Game_DanC_Offset[0],
|
||||||
|
lowerBarYOffset - TJAPlayer3.Skin.Game_DanC_Offset[1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
#region ゲージの土台を描画する。
|
#region [Gauge dan condition]
|
||||||
TJAPlayer3.Tx.DanC_Gauge_Base?.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_DanC_X[0] - ((50 - dan_C[i].GetValue(false) / 2) * 14) + 4, TJAPlayer3.Skin.Game_DanC_Y[0] + TJAPlayer3.Skin.Game_DanC_Size[1] * i + (i * TJAPlayer3.Skin.Game_DanC_Padding));
|
|
||||||
|
TJAPlayer3.Tx.DanC_Gauge_Base?.t2D描画(TJAPlayer3.app.Device,
|
||||||
|
TJAPlayer3.Skin.Game_DanC_X[0] - ((50 - dan_C[i].GetValue(false) / 2) * 14) + 4,
|
||||||
|
TJAPlayer3.Skin.Game_DanC_Y[0]);
|
||||||
|
|
||||||
|
// Display percentage here
|
||||||
|
DrawNumber(
|
||||||
|
dan_C[i].Value[0],
|
||||||
|
TJAPlayer3.Skin.Game_DanC_X[0] - ((50 - dan_C[i].GetValue(false) / 2) * 14) + 292 - dan_C[i].Value[0].ToString().Length * (int)(TJAPlayer3.Skin.Game_DanC_Number_Small_Padding * TJAPlayer3.Skin.Game_DanC_Exam_Number_Scale),
|
||||||
|
TJAPlayer3.Skin.Game_DanC_Y[0] - TJAPlayer3.Skin.Game_DanC_Exam_Offset[1] + 64,
|
||||||
|
(int)(TJAPlayer3.Skin.Game_DanC_Number_Small_Padding * TJAPlayer3.Skin.Game_DanC_Exam_Number_Scale),
|
||||||
|
false,
|
||||||
|
Challenge[i]);
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -943,8 +967,10 @@ namespace TJAPlayer3
|
|||||||
public bool GetFailedAllChallenges()
|
public bool GetFailedAllChallenges()
|
||||||
{
|
{
|
||||||
var isFailed = false;
|
var isFailed = false;
|
||||||
for (int i = 0; i < this.ExamCount; i++)
|
for (int i = 0; i < CExamInfo.cMaxExam; i++)
|
||||||
{
|
{
|
||||||
|
if (Challenge[i] == null) continue;
|
||||||
|
|
||||||
for(int j = 0; j < TJAPlayer3.stage選曲.r確定された曲.DanSongs.Count; j++ )
|
for(int j = 0; j < TJAPlayer3.stage選曲.r確定された曲.DanSongs.Count; j++ )
|
||||||
{
|
{
|
||||||
if(TJAPlayer3.stage選曲.r確定された曲.DanSongs[j].Dan_C[i] != null)
|
if(TJAPlayer3.stage選曲.r確定された曲.DanSongs[j].Dan_C[i] != null)
|
||||||
@ -965,20 +991,16 @@ namespace TJAPlayer3
|
|||||||
public Exam.Status GetExamStatus(Dan_C[] dan_C)
|
public Exam.Status GetExamStatus(Dan_C[] dan_C)
|
||||||
{
|
{
|
||||||
var status = Exam.Status.Better_Success;
|
var status = Exam.Status.Better_Success;
|
||||||
var count = 0;
|
|
||||||
for (int i = 0; i < 4; i++)
|
for (int i = 0; i < CExamInfo.cMaxExam; i++)
|
||||||
{
|
|
||||||
if (dan_C[i] != null && dan_C[i].GetEnable() == true)
|
|
||||||
count++;
|
|
||||||
}
|
|
||||||
for (int i = 0; i < count; i++)
|
|
||||||
{
|
{
|
||||||
|
if (dan_C[i] == null || dan_C[i].GetEnable() != true)
|
||||||
|
continue;
|
||||||
|
|
||||||
if (!dan_C[i].GetCleared()[1]) status = Exam.Status.Success;
|
if (!dan_C[i].GetCleared()[1]) status = Exam.Status.Success;
|
||||||
|
if (!dan_C[i].GetCleared()[0]) return (Exam.Status.Failure);
|
||||||
}
|
}
|
||||||
for (int i = 0; i < count; i++)
|
|
||||||
{
|
|
||||||
if (!dan_C[i].GetCleared()[0]) status = Exam.Status.Failure;
|
|
||||||
}
|
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1050,9 +1072,9 @@ namespace TJAPlayer3
|
|||||||
private bool bExamChangeCheck;
|
private bool bExamChangeCheck;
|
||||||
private int notesremain;
|
private int notesremain;
|
||||||
private int[] songsnotesremain;
|
private int[] songsnotesremain;
|
||||||
private bool[] ExamChange = new bool[4];
|
private bool[] ExamChange = new bool[CExamInfo.cMaxExam];
|
||||||
private int ExamCount;
|
private int ExamCount;
|
||||||
private ChallengeStatus[] Status = new ChallengeStatus[4];
|
private ChallengeStatus[] Status = new ChallengeStatus[CExamInfo.cMaxExam];
|
||||||
private CTexture Dan_Plate;
|
private CTexture Dan_Plate;
|
||||||
private bool[] IsEnded;
|
private bool[] IsEnded;
|
||||||
public bool FirstSectionAnime;
|
public bool FirstSectionAnime;
|
||||||
|
@ -1 +1 @@
|
|||||||
Subproject commit 36df7a30586d91bd23e8110dd2c3d79714ba8cd5
|
Subproject commit 692b1dc05b083e1a8ad2eb57911d0b215ce5a8b0
|
Loading…
Reference in New Issue
Block a user