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_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_Background_Main = TxC(GAME + LANE + @"Background_Main.png");
Lane_Background_AI = TxC(GAME + LANE + @"Background_AI.png");
@ -1657,11 +1670,12 @@ namespace TJAPlayer3
public CTexture[] Effects_Roll;
#endregion
#region
public CTexture[] Lane_Base,
Lane_Text;
public CTexture Lane_Red,
public CTexture[] Lane_Red,
Lane_Blue,
Lane_Yellow;
Lane_Clap,
Lane_Base,
Lane_Text;
public CTexture Lane_Yellow;
public CTexture Lane_Background_Main,
Lane_Background_AI,
Lane_Background_Sub,

View File

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

View File

@ -121,6 +121,7 @@ namespace TJAPlayer3
{
int _actual = TJAPlayer3.GetActualPlayer(i);
EGameType _gt = TJAPlayer3.ConfigIni.nGameType[_actual];
int playerShift = i * 5;
// Drum base
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)
{
TJAPlayer3.Tx.Taiko_Ka_Left.Opacity = this.stパッド状態[4 * i].n明るさ * 73;
TJAPlayer3.Tx.Taiko_Ka_Right.Opacity = this.stパッド状態[1 + 4 * i].n明るさ * 73;
TJAPlayer3.Tx.Taiko_Don_Left.Opacity = this.stパッド状態[2 + 4 * i].n明るさ * 73;
TJAPlayer3.Tx.Taiko_Don_Right.Opacity = this.stパッド状態[3 + 4 * i].n明るさ * 73;
TJAPlayer3.Tx.Taiko_Ka_Left.Opacity = this.stパッド状態[playerShift].n明るさ * 73;
TJAPlayer3.Tx.Taiko_Ka_Right.Opacity = this.stパッド状態[1 + playerShift].n明るさ * 73;
TJAPlayer3.Tx.Taiko_Don_Left.Opacity = this.stパッド状態[2 + playerShift].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_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)
{
TJAPlayer3.Tx.Taiko_Konga_Clap.Opacity = 0; // Not yet implemented
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_Ka.Opacity = Math.Max(this.stパッド状態[4 * i].n明るさ, this.stパッド状態[1 + 4 * i].n明るさ) * 73;
TJAPlayer3.Tx.Taiko_Konga_Clap.Opacity = this.stパッド状態[4 + playerShift].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パッド状態[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_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;
bool bAutoPlay = false;
int playerShift = 5 * nPlayer;
var _gt = configIni.nGameType[TJAPlayer3.GetActualPlayer(nPlayer)];
switch (nPlayer)
{
case 0:
@ -337,13 +341,24 @@ namespace TJAPlayer3
case 0x16:
case 0x17:
{
this.stパッド状態[ 2 + nHand + ( 4 * nPlayer ) ].n明るさ = 8;
this.stパッド状態[ 2 + nHand + playerShift].n明るさ = 8;
}
break;
case 0x12:
{
this.stパッド状態[nHand + playerShift].n明るさ = 8;
}
break;
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;
@ -358,27 +373,43 @@ namespace TJAPlayer3
case 0x16:
case 0x17:
{
this.stパッド状態[ 2 + nHand + ( 4 * nPlayer ) ].n明るさ = 8;
this.stパッド状態[ 2 + nHand + playerShift].n明るさ = 8;
}
break;
case 0x13:
{
this.stパッド状態[ 2 + ( 4 * nPlayer ) ].n明るさ = 8;
this.stパッド状態[ 3 + ( 4 * nPlayer ) ].n明るさ = 8;
if (_gt == EGameType.KONGA)
{
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;
case 0x12:
{
this.stパッド状態[ nHand + ( 4 * nPlayer ) ].n明るさ = 8;
this.stパッド状態[ nHand + playerShift].n明るさ = 8;
}
break;
case 0x14:
{
this.stパッド状態[ 0 + ( 4 * nPlayer ) ].n明るさ = 8;
this.stパッド状態[ 1 + ( 4 * nPlayer ) ].n明るさ = 8;
if (_gt == EGameType.KONGA)
{
this.stパッド状態[4 + playerShift].n明るさ = 8;
}
else
{
this.stパッド状態[0 + playerShift].n明るさ = 8;
this.stパッド状態[1 + playerShift].n明るさ = 8;
}
}
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 CTexture[] txコースシンボル = new CTexture[ 6 ];

View File

@ -979,6 +979,8 @@ namespace TJAPlayer3
var padTo = nUsePlayer == 0 ? nPad - 12 : nPad - 12 - 4;
var isDon = padTo < 2 ? true : false;
#region [ADLIB]
CDTX.CChip chipNoHit = r指定時刻に一番近い未ヒットChipを過去方向優先で検索する(nTime, nUsePlayer);
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)
{
case 12:
@ -1067,11 +1073,46 @@ namespace TJAPlayer3
if (b太鼓音再生フラグ)
this.soundBlue2?.t再生を開始する();
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演奏ドラム画面.actMtaiko.tMtaikoEvent(nChannel, nHand, nUsePlayer);
#endregion
if (this.b連打中[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 )
{
int nLane = 0;
int nLane = (int)PlayerLane.FlashType.Red;
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.actChipFireTaiko.Start(pChip.nチャンネル番号 < 0x1A ? (pChip.nチャンネル番号 - 0x10) : (pChip.nチャンネル番号 - 0x17), nPlayer);
if (pChip.nチャンネル番号 == 0x12 || pChip.nチャンネル番号 == 0x14 || pChip.nチャンネル番号 == 0x1B) nLane = 1;
TJAPlayer3.stage演奏ドラム画面.actTaikoLaneFlash.PlayerLane[nPlayer].Start((nLane == 0 ? PlayerLane.FlashType.Red : PlayerLane.FlashType.Blue));
if (pChip.nチャンネル番号 == 0x12 || pChip.nチャンネル番号 == 0x14 || pChip.nチャンネル番号 == 0x1B) nLane = (int)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);
this.actMtaiko.tMtaikoEvent(pChip.nチャンネル番号, this.nHand[nPlayer], nPlayer);

View File

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

View File

@ -161,10 +161,10 @@
10055 : "System key input configuration" option title
10056 : "Hide Dan/Tower" option title
10057 : "Hide Dan/Tower" description
10058 : "Konga clap key settings" option title
10059 : "Konga clap key settings" description
10060 : "Konga clap key settings for 2P" option title
10061 : "Konga clap key settings for 2P" description
10060 : "Konga clap key settings" option title
10061 : "Konga clap key settings" description
10062 : "Konga clap key settings for 2P" option title
10063 : "Konga clap key settings for 2P" description
10084 : "Shin-uchi toggle" option title
10085 : "System 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