1
0
mirror of synced 2024-11-24 15:40:22 +01:00

Auto mode now uses clap hits and double hits for Konga mode

This commit is contained in:
0aubsq 2022-05-07 23:37:26 +02:00
parent 38d1ea9711
commit 0949bf690c
9 changed files with 167 additions and 45 deletions

View File

@ -605,8 +605,21 @@ namespace TJAPlayer3
Lane_Base[i] = TxC(GAME + LANE + "Base_" + Lanes[i] + ".png"); Lane_Base[i] = TxC(GAME + LANE + "Base_" + Lanes[i] + ".png");
Lane_Text[i] = TxC(GAME + LANE + "Text_" + Lanes[i] + ".png"); Lane_Text[i] = TxC(GAME + LANE + "Text_" + Lanes[i] + ".png");
} }
Lane_Red = TxC(GAME + LANE + @"Red.png");
Lane_Blue = TxC(GAME + LANE + @"Blue.png"); Lane_Red = new CTexture[2];
Lane_Blue = new CTexture[2];
Lane_Clap = new CTexture[2];
var _suffixes = new string[] { "", "_Konga" };
for (int i = 0; i < Lane_Red.Length; i++)
{
Lane_Red[i] = TxC(GAME + LANE + @"Red" + _suffixes[i] + @".png");
Lane_Blue[i] = TxC(GAME + LANE + @"Blue" + _suffixes[i] + @".png");
Lane_Clap[i] = TxC(GAME + LANE + @"Clap" + _suffixes[i] + @".png");
}
Lane_Yellow = TxC(GAME + LANE + @"Yellow.png"); Lane_Yellow = TxC(GAME + LANE + @"Yellow.png");
Lane_Background_Main = TxC(GAME + LANE + @"Background_Main.png"); Lane_Background_Main = TxC(GAME + LANE + @"Background_Main.png");
Lane_Background_AI = TxC(GAME + LANE + @"Background_AI.png"); Lane_Background_AI = TxC(GAME + LANE + @"Background_AI.png");
@ -1657,11 +1670,12 @@ namespace TJAPlayer3
public CTexture[] Effects_Roll; public CTexture[] Effects_Roll;
#endregion #endregion
#region #region
public CTexture[] Lane_Base, public CTexture[] Lane_Red,
Lane_Text;
public CTexture Lane_Red,
Lane_Blue, Lane_Blue,
Lane_Yellow; Lane_Clap,
Lane_Base,
Lane_Text;
public CTexture Lane_Yellow;
public CTexture Lane_Background_Main, public CTexture Lane_Background_Main,
Lane_Background_AI, Lane_Background_AI,
Lane_Background_Sub, Lane_Background_Sub,

View File

@ -913,7 +913,9 @@ namespace TJAPlayer3
} }
protected void tサウンド再生( CDTX.CChip pChip, int nPlayer ) protected void tサウンド再生( CDTX.CChip pChip, int nPlayer )
{ {
var _gt = TJAPlayer3.ConfigIni.nGameType[TJAPlayer3.GetActualPlayer(nPlayer)];
int index = pChip.nチャンネル番号; int index = pChip.nチャンネル番号;
if (index == 0x11 || index == 0x13 || index == 0x1A) if (index == 0x11 || index == 0x13 || index == 0x1A)
{ {
if (pChip.nPlayerSide == 0) if (pChip.nPlayerSide == 0)
@ -924,11 +926,8 @@ namespace TJAPlayer3
{ {
this.soundRed2?.t再生を開始する(); this.soundRed2?.t再生を開始する();
} }
} if (index == 0x13 && _gt == EGameType.KONGA)
else if (index == 0x12 || index == 0x14 || index == 0x1B)
{ {
if (pChip.nPlayerSide == 0) if (pChip.nPlayerSide == 0)
{ {
this.soundBlue?.t再生を開始する(); this.soundBlue?.t再生を開始する();
@ -938,6 +937,34 @@ namespace TJAPlayer3
this.soundBlue2?.t再生を開始する(); this.soundBlue2?.t再生を開始する();
} }
} }
}
else if (index == 0x12 || index == 0x14 || index == 0x1B)
{
if (index == 0x14 && _gt == EGameType.KONGA)
{
if (pChip.nPlayerSide == 0)
{
this.soundClap?.t再生を開始する();
}
else
{
this.soundClap2?.t再生を開始する();
}
}
else
{
if (pChip.nPlayerSide == 0)
{
this.soundBlue?.t再生を開始する();
}
else
{
this.soundBlue2?.t再生を開始する();
}
}
}
else if (index == 0x1F) else if (index == 0x1F)
{ {
if (pChip.nPlayerSide == 0) if (pChip.nPlayerSide == 0)

View File

@ -121,6 +121,7 @@ namespace TJAPlayer3
{ {
int _actual = TJAPlayer3.GetActualPlayer(i); int _actual = TJAPlayer3.GetActualPlayer(i);
EGameType _gt = TJAPlayer3.ConfigIni.nGameType[_actual]; EGameType _gt = TJAPlayer3.ConfigIni.nGameType[_actual];
int playerShift = i * 5;
// Drum base // Drum base
TJAPlayer3.Tx.Taiko_Base[(int)_gt]?.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_X[i], TJAPlayer3.Skin.Game_Taiko_Y[i]); TJAPlayer3.Tx.Taiko_Base[(int)_gt]?.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_X[i], TJAPlayer3.Skin.Game_Taiko_Y[i]);
@ -130,10 +131,10 @@ namespace TJAPlayer3
{ {
if (TJAPlayer3.Tx.Taiko_Don_Left != null && TJAPlayer3.Tx.Taiko_Don_Right != null && TJAPlayer3.Tx.Taiko_Ka_Left != null && TJAPlayer3.Tx.Taiko_Ka_Right != null) if (TJAPlayer3.Tx.Taiko_Don_Left != null && TJAPlayer3.Tx.Taiko_Don_Right != null && TJAPlayer3.Tx.Taiko_Ka_Left != null && TJAPlayer3.Tx.Taiko_Ka_Right != null)
{ {
TJAPlayer3.Tx.Taiko_Ka_Left.Opacity = this.stパッド状態[4 * i].n明るさ * 73; TJAPlayer3.Tx.Taiko_Ka_Left.Opacity = this.stパッド状態[playerShift].n明るさ * 73;
TJAPlayer3.Tx.Taiko_Ka_Right.Opacity = this.stパッド状態[1 + 4 * i].n明るさ * 73; TJAPlayer3.Tx.Taiko_Ka_Right.Opacity = this.stパッド状態[1 + playerShift].n明るさ * 73;
TJAPlayer3.Tx.Taiko_Don_Left.Opacity = this.stパッド状態[2 + 4 * i].n明るさ * 73; TJAPlayer3.Tx.Taiko_Don_Left.Opacity = this.stパッド状態[2 + playerShift].n明るさ * 73;
TJAPlayer3.Tx.Taiko_Don_Right.Opacity = this.stパッド状態[3 + 4 * i].n明るさ * 73; TJAPlayer3.Tx.Taiko_Don_Right.Opacity = this.stパッド状態[3 + playerShift].n明るさ * 73;
TJAPlayer3.Tx.Taiko_Ka_Left.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_X[i], TJAPlayer3.Skin.Game_Taiko_Y[i], new Rectangle(0, 0, TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Width / 2, TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Height)); TJAPlayer3.Tx.Taiko_Ka_Left.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_X[i], TJAPlayer3.Skin.Game_Taiko_Y[i], new Rectangle(0, 0, TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Width / 2, TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Height));
TJAPlayer3.Tx.Taiko_Ka_Right.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_X[i] + TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Width / 2, TJAPlayer3.Skin.Game_Taiko_Y[i], new Rectangle(TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Width / 2, 0, TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Width / 2, TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Height)); TJAPlayer3.Tx.Taiko_Ka_Right.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_X[i] + TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Width / 2, TJAPlayer3.Skin.Game_Taiko_Y[i], new Rectangle(TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Width / 2, 0, TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Width / 2, TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Height));
@ -145,9 +146,9 @@ namespace TJAPlayer3
{ {
if (TJAPlayer3.Tx.Taiko_Konga_Clap != null && TJAPlayer3.Tx.Taiko_Konga_Don != null && TJAPlayer3.Tx.Taiko_Konga_Ka != null) if (TJAPlayer3.Tx.Taiko_Konga_Clap != null && TJAPlayer3.Tx.Taiko_Konga_Don != null && TJAPlayer3.Tx.Taiko_Konga_Ka != null)
{ {
TJAPlayer3.Tx.Taiko_Konga_Clap.Opacity = 0; // Not yet implemented TJAPlayer3.Tx.Taiko_Konga_Clap.Opacity = this.stパッド状態[4 + playerShift].n明るさ * 73;
TJAPlayer3.Tx.Taiko_Konga_Don.Opacity = Math.Max(this.stパッド状態[2 + 4 * i].n明るさ, this.stパッド状態[3 + 4 * i].n明るさ) * 73; TJAPlayer3.Tx.Taiko_Konga_Don.Opacity = Math.Max(this.stパッド状態[2 + playerShift].n明るさ, this.stパッド状態[3 + playerShift].n明るさ) * 73;
TJAPlayer3.Tx.Taiko_Konga_Ka.Opacity = Math.Max(this.stパッド状態[4 * i].n明るさ, this.stパッド状態[1 + 4 * i].n明るさ) * 73; TJAPlayer3.Tx.Taiko_Konga_Ka.Opacity = Math.Max(this.stパッド状態[playerShift].n明るさ, this.stパッド状態[1 + playerShift].n明るさ) * 73;
TJAPlayer3.Tx.Taiko_Konga_Ka.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_X[i], TJAPlayer3.Skin.Game_Taiko_Y[i]); TJAPlayer3.Tx.Taiko_Konga_Ka.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_X[i], TJAPlayer3.Skin.Game_Taiko_Y[i]);
TJAPlayer3.Tx.Taiko_Konga_Don.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_X[i], TJAPlayer3.Skin.Game_Taiko_Y[i]); TJAPlayer3.Tx.Taiko_Konga_Don.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_X[i], TJAPlayer3.Skin.Game_Taiko_Y[i]);
@ -315,6 +316,9 @@ namespace TJAPlayer3
{ {
CConfigIni configIni = TJAPlayer3.ConfigIni; CConfigIni configIni = TJAPlayer3.ConfigIni;
bool bAutoPlay = false; bool bAutoPlay = false;
int playerShift = 5 * nPlayer;
var _gt = configIni.nGameType[TJAPlayer3.GetActualPlayer(nPlayer)];
switch (nPlayer) switch (nPlayer)
{ {
case 0: case 0:
@ -337,13 +341,24 @@ namespace TJAPlayer3
case 0x16: case 0x16:
case 0x17: case 0x17:
{ {
this.stパッド状態[ 2 + nHand + ( 4 * nPlayer ) ].n明るさ = 8; this.stパッド状態[ 2 + nHand + playerShift].n明るさ = 8;
} }
break; break;
case 0x12: case 0x12:
{
this.stパッド状態[nHand + playerShift].n明るさ = 8;
}
break;
case 0x14: case 0x14:
{ {
this.stパッド状態[ nHand + ( 4 * nPlayer ) ].n明るさ = 8; if (_gt == EGameType.KONGA)
{
this.stパッド状態[4 + playerShift].n明るさ = 8;
}
else
{
this.stパッド状態[nHand + playerShift].n明るさ = 8;
}
} }
break; break;
@ -358,27 +373,43 @@ namespace TJAPlayer3
case 0x16: case 0x16:
case 0x17: case 0x17:
{ {
this.stパッド状態[ 2 + nHand + ( 4 * nPlayer ) ].n明るさ = 8; this.stパッド状態[ 2 + nHand + playerShift].n明るさ = 8;
} }
break; break;
case 0x13: case 0x13:
{ {
this.stパッド状態[ 2 + ( 4 * nPlayer ) ].n明るさ = 8; if (_gt == EGameType.KONGA)
this.stパッド状態[ 3 + ( 4 * nPlayer ) ].n明るさ = 8; {
this.stパッド状態[0 + playerShift].n明るさ = 8;
this.stパッド状態[2 + playerShift].n明るさ = 8;
}
else
{
this.stパッド状態[2 + playerShift].n明るさ = 8;
this.stパッド状態[3 + playerShift].n明るさ = 8;
}
} }
break; break;
case 0x12: case 0x12:
{ {
this.stパッド状態[ nHand + ( 4 * nPlayer ) ].n明るさ = 8; this.stパッド状態[ nHand + playerShift].n明るさ = 8;
} }
break; break;
case 0x14: case 0x14:
{ {
this.stパッド状態[ 0 + ( 4 * nPlayer ) ].n明るさ = 8; if (_gt == EGameType.KONGA)
this.stパッド状態[ 1 + ( 4 * nPlayer ) ].n明るさ = 8; {
this.stパッド状態[4 + playerShift].n明るさ = 8;
}
else
{
this.stパッド状態[0 + playerShift].n明るさ = 8;
this.stパッド状態[1 + playerShift].n明るさ = 8;
}
} }
break; break;
} }
@ -406,7 +437,7 @@ namespace TJAPlayer3
} }
//太鼓 //太鼓
private STパッド状態[] stパッド状態 = new STパッド状態[ 4 * 4 ]; private STパッド状態[] stパッド状態 = new STパッド状態[ 4 * 5 ];
private long nフラッシュ制御タイマ; private long nフラッシュ制御タイマ;
//private CTexture[] txコースシンボル = new CTexture[ 6 ]; //private CTexture[] txコースシンボル = new CTexture[ 6 ];

View File

@ -979,6 +979,8 @@ namespace TJAPlayer3
var padTo = nUsePlayer == 0 ? nPad - 12 : nPad - 12 - 4; var padTo = nUsePlayer == 0 ? nPad - 12 : nPad - 12 - 4;
var isDon = padTo < 2 ? true : false; var isDon = padTo < 2 ? true : false;
#region [ADLIB]
CDTX.CChip chipNoHit = r指定時刻に一番近い未ヒットChipを過去方向優先で検索する(nTime, nUsePlayer); CDTX.CChip chipNoHit = r指定時刻に一番近い未ヒットChipを過去方向優先で検索する(nTime, nUsePlayer);
E判定 e判定 = (chipNoHit != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipNoHit, nUsePlayer) : E判定.Miss; E判定 e判定 = (chipNoHit != null) ? this.e指定時刻からChipのJUDGEを返す(nTime, chipNoHit, nUsePlayer) : E判定.Miss;
@ -1000,6 +1002,10 @@ namespace TJAPlayer3
} }
} }
#endregion
#region [Visual effects]
switch (nPad) switch (nPad)
{ {
case 12: case 12:
@ -1067,11 +1073,46 @@ namespace TJAPlayer3
if (b太鼓音再生フラグ) if (b太鼓音再生フラグ)
this.soundBlue2?.t再生を開始する(); this.soundBlue2?.t再生を開始する();
break; break;
// Clap
case (int)Eパッド.CLAP:
if (TJAPlayer3.ConfigIni.nGameType[TJAPlayer3.GetActualPlayer(0)] == EGameType.KONGA)
{
nLane = (int)PlayerLane.FlashType.Clap;
nHand = 0;
nChannel = 0x14;
if (b太鼓音再生フラグ)
{
this.soundClap?.t再生を開始する();
}
}
else
{
nLane = (int)PlayerLane.FlashType.Total;
}
break;
case (int)Eパッド.CLAP2P:
if (TJAPlayer3.ConfigIni.nGameType[TJAPlayer3.GetActualPlayer(1)] == EGameType.KONGA)
{
nLane = (int)PlayerLane.FlashType.Clap;
nHand = 0;
nChannel = 0x14;
if (b太鼓音再生フラグ)
{
this.soundClap2?.t再生を開始する();
}
}
else
{
nLane = (int)PlayerLane.FlashType.Total;
}
break;
} }
TJAPlayer3.stage演奏ドラム画面.actTaikoLaneFlash.PlayerLane[nUsePlayer].Start((PlayerLane.FlashType)nLane); TJAPlayer3.stage演奏ドラム画面.actTaikoLaneFlash.PlayerLane[nUsePlayer].Start((PlayerLane.FlashType)nLane);
TJAPlayer3.stage演奏ドラム画面.actMtaiko.tMtaikoEvent(nChannel, nHand, nUsePlayer); TJAPlayer3.stage演奏ドラム画面.actMtaiko.tMtaikoEvent(nChannel, nHand, nUsePlayer);
#endregion
if (this.b連打中[nUsePlayer]) if (this.b連打中[nUsePlayer])
{ {
chipNoHit = this.chip現在処理中の連打チップ[nUsePlayer]; chipNoHit = this.chip現在処理中の連打チップ[nUsePlayer];
@ -1391,7 +1432,7 @@ namespace TJAPlayer3
} }
protected override void t進行描画_チップ_Taiko( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip, int nPlayer ) protected override void t進行描画_チップ_Taiko( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip, int nPlayer )
{ {
int nLane = 0; int nLane = (int)PlayerLane.FlashType.Red;
EGameType _gt = TJAPlayer3.ConfigIni.nGameType[TJAPlayer3.GetActualPlayer(nPlayer)]; EGameType _gt = TJAPlayer3.ConfigIni.nGameType[TJAPlayer3.GetActualPlayer(nPlayer)];
@ -1426,8 +1467,11 @@ namespace TJAPlayer3
this.FlyingNotes.Start(pChip.nチャンネル番号 < 0x1A ? (pChip.nチャンネル番号 - 0x10) : (pChip.nチャンネル番号 - 0x17), nPlayer); this.FlyingNotes.Start(pChip.nチャンネル番号 < 0x1A ? (pChip.nチャンネル番号 - 0x10) : (pChip.nチャンネル番号 - 0x17), nPlayer);
//this.actChipFireTaiko.Start(pChip.nチャンネル番号 < 0x1A ? (pChip.nチャンネル番号 - 0x10) : (pChip.nチャンネル番号 - 0x17), nPlayer); //this.actChipFireTaiko.Start(pChip.nチャンネル番号 < 0x1A ? (pChip.nチャンネル番号 - 0x10) : (pChip.nチャンネル番号 - 0x17), nPlayer);
if (pChip.nチャンネル番号 == 0x12 || pChip.nチャンネル番号 == 0x14 || pChip.nチャンネル番号 == 0x1B) nLane = 1; if (pChip.nチャンネル番号 == 0x12 || pChip.nチャンネル番号 == 0x14 || pChip.nチャンネル番号 == 0x1B) nLane = (int)PlayerLane.FlashType.Blue;
TJAPlayer3.stage演奏ドラム画面.actTaikoLaneFlash.PlayerLane[nPlayer].Start((nLane == 0 ? PlayerLane.FlashType.Red : PlayerLane.FlashType.Blue));
if (pChip.nチャンネル番号 == 0x14 && _gt == EGameType.KONGA) nLane = (int)PlayerLane.FlashType.Clap;
TJAPlayer3.stage演奏ドラム画面.actTaikoLaneFlash.PlayerLane[nPlayer].Start((PlayerLane.FlashType)nLane);
TJAPlayer3.stage演奏ドラム画面.actTaikoLaneFlash.PlayerLane[nPlayer].Start(PlayerLane.FlashType.Hit); TJAPlayer3.stage演奏ドラム画面.actTaikoLaneFlash.PlayerLane[nPlayer].Start(PlayerLane.FlashType.Hit);
this.actMtaiko.tMtaikoEvent(pChip.nチャンネル番号, this.nHand[nPlayer], nPlayer); this.actMtaiko.tMtaikoEvent(pChip.nチャンネル番号, this.nHand[nPlayer], nPlayer);

View File

@ -56,15 +56,20 @@ namespace TJAPlayer3
public PlayerLane(int player) public PlayerLane(int player)
{ {
Flash = new LaneFlash[(int)FlashType.Total]; Flash = new LaneFlash[(int)FlashType.Total];
var _gt = TJAPlayer3.ConfigIni.nGameType[TJAPlayer3.GetActualPlayer(player)];
for (int i = 0; i < (int)FlashType.Total; i++) for (int i = 0; i < (int)FlashType.Total; i++)
{ {
switch (i) switch (i)
{ {
case (int)FlashType.Red: case (int)FlashType.Red:
Flash[i] = new LaneFlash(ref TJAPlayer3.Tx.Lane_Red, player); Flash[i] = new LaneFlash(ref TJAPlayer3.Tx.Lane_Red[(int)_gt], player);
break; break;
case (int)FlashType.Blue: case (int)FlashType.Blue:
Flash[i] = new LaneFlash(ref TJAPlayer3.Tx.Lane_Blue, player); Flash[i] = new LaneFlash(ref TJAPlayer3.Tx.Lane_Blue[(int)_gt], player);
break;
case (int)FlashType.Clap:
Flash[i] = new LaneFlash(ref TJAPlayer3.Tx.Lane_Clap[(int)_gt], player);
break; break;
case (int)FlashType.Hit: case (int)FlashType.Hit:
Flash[i] = new LaneFlash(ref TJAPlayer3.Tx.Lane_Yellow, player); Flash[i] = new LaneFlash(ref TJAPlayer3.Tx.Lane_Yellow, player);
@ -86,6 +91,7 @@ namespace TJAPlayer3
{ {
Red, Red,
Blue, Blue,
Clap,
Hit, Hit,
Total Total
} }

View File

@ -161,10 +161,10 @@
10055 : "System key input configuration" option title 10055 : "System key input configuration" option title
10056 : "Hide Dan/Tower" option title 10056 : "Hide Dan/Tower" option title
10057 : "Hide Dan/Tower" description 10057 : "Hide Dan/Tower" description
10058 : "Konga clap key settings" option title 10060 : "Konga clap key settings" option title
10059 : "Konga clap key settings" description 10061 : "Konga clap key settings" description
10060 : "Konga clap key settings for 2P" option title 10062 : "Konga clap key settings for 2P" option title
10061 : "Konga clap key settings for 2P" description 10063 : "Konga clap key settings for 2P" description
10084 : "Shin-uchi toggle" option title 10084 : "Shin-uchi toggle" option title
10085 : "System options" menu title 10085 : "System options" menu title
10086 : "Gameplay options" menu title 10086 : "Gameplay options" menu title

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB