Version 0.4.3 : Course:Tower are now fully playable, including LIFE parameter, early lose condition if LIFE reachs 0, and so on. Full result screen and Lower background will release later
This commit is contained in:
parent
97e3a9b99e
commit
e206db822b
11
README.md
11
README.md
@ -3,9 +3,9 @@ TJAPlayer3-Develop-ReWrite-1のフォーク, 太鼓の達人 ニジイロVerを
|
||||
|
||||
(English version coming soon)
|
||||
|
||||
- 現在の版: v0.4.2
|
||||
- 現在の版: v0.4.3
|
||||
|
||||
- スキンの最新版: v0.4.2
|
||||
- スキンの最新版: v0.4.3
|
||||
|
||||
## 予告情報 (重要)
|
||||
|
||||
@ -49,6 +49,13 @@ Discord以外で配布しておりません。
|
||||
|
||||
## 更新記録
|
||||
|
||||
<details>
|
||||
<summary>v0.4.3</summary>
|
||||
|
||||
- PS2の太鼓タワーを実装 (Gameplay)
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>v0.4.2</summary>
|
||||
|
||||
|
@ -367,6 +367,10 @@ namespace TJAPlayer3
|
||||
|
||||
public Cシステムサウンド soundSelectAnnounce = null;
|
||||
|
||||
// Tower Sfx
|
||||
public Cシステムサウンド soundTowerMiss = null;
|
||||
public Cシステムサウンド bgmTowerResult = null;
|
||||
|
||||
//public Cシステムサウンド soundRed = null;
|
||||
//public Cシステムサウンド soundBlue = null;
|
||||
public Cシステムサウンド soundBalloon = null;
|
||||
@ -707,6 +711,8 @@ namespace TJAPlayer3
|
||||
|
||||
this.bgmDanResult = new Cシステムサウンド(@"Sounds\Dan\Dan_Result.ogg", false, false, true, ESoundGroup.SongPlayback);
|
||||
|
||||
this.bgmTowerResult = new Cシステムサウンド(@"Sounds\Tower\Tower_Result.ogg", false, false, true, ESoundGroup.SongPlayback);
|
||||
this.soundTowerMiss = new Cシステムサウンド(@"Sounds\Tower\Miss.wav", false, false, true, ESoundGroup.SoundEffect);
|
||||
|
||||
this.soundCrownIn = new Cシステムサウンド(@"Sounds\ResultScreen\CrownIn.ogg", false, false, false, ESoundGroup.SoundEffect);
|
||||
this.soundRankIn = new Cシステムサウンド(@"Sounds\ResultScreen\RankIn.ogg", false, false, false, ESoundGroup.SoundEffect);
|
||||
|
@ -20,6 +20,7 @@ namespace TJAPlayer3
|
||||
const string RESULT = @"6_Result\";
|
||||
const string EXIT = @"7_Exit\";
|
||||
const string DANRESULT = @"7_DanResult\";
|
||||
const string TOWERRESULT = @"8_TowerResult\";
|
||||
|
||||
// InGame
|
||||
const string CHARA = @"1_Chara\";
|
||||
@ -774,7 +775,7 @@ namespace TJAPlayer3
|
||||
Exit_Background = TxC(EXIT + @"Background.png");
|
||||
#endregion
|
||||
|
||||
#region [8_DanResults]
|
||||
#region [7_DanResults]
|
||||
|
||||
DanResult_Background = TxC(DANRESULT + @"Background.png");
|
||||
DanResult_Rank = TxC(DANRESULT + @"Rank.png");
|
||||
@ -785,6 +786,18 @@ namespace TJAPlayer3
|
||||
|
||||
#endregion
|
||||
|
||||
#region [8_TowerResults]
|
||||
|
||||
TowerResult_Background = TxC(TOWERRESULT + @"Background.png");
|
||||
TowerResult_Panel = TxC(TOWERRESULT + @"Panel.png");
|
||||
|
||||
for (int i = 0; i < TowerResult_Tower.Length; i++)
|
||||
{
|
||||
TowerResult_Tower[i] = TxC(TOWERRESULT + @"Tower\" + i.ToString() + ".png");
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
}
|
||||
|
||||
public void DisposeTexture()
|
||||
@ -1128,7 +1141,7 @@ namespace TJAPlayer3
|
||||
/*Exit_Text */;
|
||||
#endregion
|
||||
|
||||
#region [8_DanResults]
|
||||
#region [7_DanResults]
|
||||
|
||||
public CTexture DanResult_Background,
|
||||
DanResult_Rank,
|
||||
@ -1139,6 +1152,15 @@ namespace TJAPlayer3
|
||||
|
||||
#endregion
|
||||
|
||||
#region [8_TowerResults]
|
||||
|
||||
public CTexture TowerResult_Background,
|
||||
TowerResult_Panel;
|
||||
public CTexture[]
|
||||
TowerResult_Tower = new CTexture[1];
|
||||
|
||||
#endregion
|
||||
|
||||
#region [ 解放用 ]
|
||||
public List<CTexture> listTexture = new List<CTexture>();
|
||||
#endregion
|
||||
|
@ -70,8 +70,9 @@ namespace TJAPlayer3
|
||||
public void Start()
|
||||
{
|
||||
this.dbFailedTime = TJAPlayer3.Timer.n現在時刻;
|
||||
this.ct進行 = new CCounter( 0, 1000, 2, TJAPlayer3.Timer );
|
||||
if( TJAPlayer3.ConfigIni.eGameMode != EGame.OFF )
|
||||
this.ct進行 = new CCounter( 0, 300, 22, TJAPlayer3.Timer );
|
||||
this.ctEnd_ClearFailed = new CCounter(0, 69, 30, TJAPlayer3.Timer);
|
||||
if ( TJAPlayer3.ConfigIni.eGameMode != EGame.OFF )
|
||||
{
|
||||
this.ct進行 = new CCounter( 0, 4000, 2, TJAPlayer3.Timer );
|
||||
}
|
||||
@ -99,12 +100,14 @@ namespace TJAPlayer3
|
||||
}
|
||||
public override void OnManagedリソースの作成()
|
||||
{
|
||||
this.failedSongPlayed = false;
|
||||
if( !base.b活性化してない )
|
||||
{
|
||||
// this.txBlack = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\Tile black 64x64.png" ) );
|
||||
//this.txStageFailed = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\7_stage_failed.jpg" ) );
|
||||
//this.txGameFailed = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\7_GameFailed.png" ) );
|
||||
// this.tx数字 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\7_RollNumber.png" ) );
|
||||
this.soundFailed = TJAPlayer3.Sound管理.tサウンドを生成する(CSkin.Path(@"Sounds\Failed.ogg"), ESoundGroup.SoundEffect);
|
||||
base.OnManagedリソースの作成();
|
||||
}
|
||||
}
|
||||
@ -116,9 +119,39 @@ namespace TJAPlayer3
|
||||
//CDTXMania.tテクスチャの解放( ref this.txGameFailed );
|
||||
// CDTXMania.tテクスチャの解放( ref this.txBlack );
|
||||
// CDTXMania.tテクスチャの解放( ref this.tx数字 );
|
||||
if (this.soundFailed != null)
|
||||
this.soundFailed.t解放する();
|
||||
base.OnManagedリソースの解放();
|
||||
}
|
||||
}
|
||||
|
||||
#region [Effect]
|
||||
|
||||
private void showEndEffect_Failed(int i)
|
||||
{
|
||||
int[] y = new int[] { 0, 176 };
|
||||
|
||||
this.ctEnd_ClearFailed.t進行();
|
||||
if (this.ctEnd_ClearFailed.n現在の値 <= 20)
|
||||
{
|
||||
TJAPlayer3.Tx.End_ClearFailed[this.ctEnd_ClearFailed.n現在の値].t2D描画(TJAPlayer3.app.Device, 505, y[i] + 145);
|
||||
}
|
||||
if (this.ctEnd_ClearFailed.n現在の値 >= 20 && this.ctEnd_ClearFailed.n現在の値 <= 67)
|
||||
{
|
||||
TJAPlayer3.Tx.ClearFailed.t2D描画(TJAPlayer3.app.Device, 502, y[i] + 192);
|
||||
}
|
||||
else if (this.ctEnd_ClearFailed.n現在の値 == 68)
|
||||
{
|
||||
TJAPlayer3.Tx.ClearFailed1.t2D描画(TJAPlayer3.app.Device, 502, y[i] + 192);
|
||||
}
|
||||
else if (this.ctEnd_ClearFailed.n現在の値 >= 69)
|
||||
{
|
||||
TJAPlayer3.Tx.ClearFailed2.t2D描画(TJAPlayer3.app.Device, 502, y[i] + 192);
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
public override int On進行描画()
|
||||
{
|
||||
if( base.b活性化してない )
|
||||
@ -131,6 +164,19 @@ namespace TJAPlayer3
|
||||
}
|
||||
this.ct進行.t進行();
|
||||
|
||||
#region [Failed screen]
|
||||
|
||||
if (this.soundFailed != null && !this.failedSongPlayed)
|
||||
{
|
||||
this.soundFailed.t再生を開始する();
|
||||
this.failedSongPlayed = true;
|
||||
}
|
||||
this.showEndEffect_Failed(0);
|
||||
|
||||
#endregion
|
||||
|
||||
/*
|
||||
|
||||
if (TJAPlayer3.ConfigIni.eGameMode == EGame.完走叩ききりまショー || TJAPlayer3.ConfigIni.eGameMode == EGame.完走叩ききりまショー激辛)
|
||||
{
|
||||
if (TJAPlayer3.Tx.Tile_Black != null)
|
||||
@ -191,6 +237,8 @@ namespace TJAPlayer3
|
||||
}
|
||||
}
|
||||
|
||||
*/
|
||||
|
||||
if( !this.ct進行.b終了値に達した )
|
||||
{
|
||||
return 0;
|
||||
@ -206,6 +254,10 @@ namespace TJAPlayer3
|
||||
private bool b効果音再生済み;
|
||||
private CCounter ct進行;
|
||||
private CSound sd効果音;
|
||||
|
||||
private bool failedSongPlayed;
|
||||
private CSound soundFailed;
|
||||
private CCounter ctEnd_ClearFailed;
|
||||
//private CTexture txStageFailed;
|
||||
// private CTexture txGameFailed;
|
||||
// private CTexture txBlack;
|
||||
|
@ -3081,9 +3081,21 @@ namespace TJAPlayer3
|
||||
}
|
||||
protected void t進行描画_STAGEFAILED()
|
||||
{
|
||||
if ( ( ( base.eフェーズID == CStage.Eフェーズ.演奏_STAGE_FAILED ) || ( base.eフェーズID == CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト ) ) && ( ( this.actStageFailed.On進行描画() != 0 ) && ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト ) ) )
|
||||
// Transition for failed games
|
||||
if ( ( ( base.eフェーズID == CStage.Eフェーズ.演奏_STAGE_FAILED )
|
||||
|| ( base.eフェーズID == CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト ) )
|
||||
&& ( ( this.actStageFailed.On進行描画() != 0 )
|
||||
&& ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト ) ) )
|
||||
{
|
||||
if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Tower)
|
||||
{
|
||||
this.eフェードアウト完了時の戻り値 = E演奏画面の戻り値.ステージクリア;
|
||||
}
|
||||
else
|
||||
{
|
||||
this.eフェードアウト完了時の戻り値 = E演奏画面の戻り値.ステージ失敗;
|
||||
|
||||
}
|
||||
base.eフェーズID = CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト;
|
||||
this.actFO.tフェードアウト開始();
|
||||
}
|
||||
|
@ -128,9 +128,6 @@ namespace TJAPlayer3
|
||||
if (this.ctキャラクターアクション_ノルマ != null || TJAPlayer3.Skin.Game_Chara_Ptn_ClearIn != 0) this.ctキャラクターアクション_ノルマ[i].t進行db();
|
||||
if (this.ctキャラクターアクション_魂MAX != null || TJAPlayer3.Skin.Game_Chara_Ptn_SoulIn != 0) this.ctキャラクターアクション_魂MAX[i].t進行db();
|
||||
|
||||
|
||||
if (this.b風船連打中[i] != true && this.bマイどんアクション中[i] != true && CharaAction_Balloon_Delay[i].b終了値に達した)
|
||||
{
|
||||
// Blinking animation during invincibility frames
|
||||
if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Tower)
|
||||
{
|
||||
@ -138,6 +135,8 @@ namespace TJAPlayer3
|
||||
break;
|
||||
}
|
||||
|
||||
if (this.b風船連打中[i] != true && this.bマイどんアクション中[i] != true && CharaAction_Balloon_Delay[i].b終了値に達した)
|
||||
{
|
||||
if (!TJAPlayer3.stage演奏ドラム画面.bIsGOGOTIME[i])
|
||||
{
|
||||
if (TJAPlayer3.stage演奏ドラム画面.actGauge.db現在のゲージ値[i] >= 100.0 && TJAPlayer3.Skin.Game_Chara_Ptn_Clear != 0)
|
||||
@ -177,7 +176,6 @@ namespace TJAPlayer3
|
||||
|
||||
if (this.b風船連打中[i] != true && bマイどんアクション中[i] == true && CharaAction_Balloon_Delay[i].b終了値に達した)
|
||||
{
|
||||
|
||||
if (this.ctキャラクターアクション_10コンボ[i].b進行中)
|
||||
{
|
||||
if (TJAPlayer3.Tx.Chara_10Combo[i] != null && TJAPlayer3.Skin.Game_Chara_Ptn_10combo != 0)
|
||||
|
@ -31,7 +31,24 @@ namespace TJAPlayer3
|
||||
this.ctEnd_DondaFullComboLoop = new CCounter(0, 2, 30, TJAPlayer3.Timer);
|
||||
|
||||
// モードの決定。クリア失敗・フルコンボも事前に作っとく。
|
||||
if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan)
|
||||
if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Tower)
|
||||
{
|
||||
if (CFloorManagement.CurrentNumberOfLives > 0)
|
||||
{
|
||||
if (TJAPlayer3.stage演奏ドラム画面.CBranchScore[0].nMiss == 0)
|
||||
{
|
||||
if (TJAPlayer3.stage演奏ドラム画面.CBranchScore[0].nGood == 0)
|
||||
this.Mode[0] = EndMode.StageDondaFullCombo;
|
||||
else
|
||||
this.Mode[0] = EndMode.StageFullCombo;
|
||||
}
|
||||
else
|
||||
this.Mode[0] = EndMode.StageCleared;
|
||||
}
|
||||
else
|
||||
this.Mode[0] = EndMode.StageFailed;
|
||||
}
|
||||
else if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan)
|
||||
{
|
||||
// 段位認定モード。
|
||||
if (!TJAPlayer3.stage演奏ドラム画面.actDan.GetFailedAllChallenges())
|
||||
|
@ -26,7 +26,7 @@ namespace TJAPlayer3
|
||||
{
|
||||
CFloorManagement.InvincibilityFrames = new CCounter(0, CFloorManagement.InvincibilityDuration + 1000, 1, TJAPlayer3.Timer);
|
||||
CFloorManagement.CurrentNumberOfLives--;
|
||||
// Play "outch" sfx
|
||||
TJAPlayer3.Skin.soundTowerMiss.t再生する();
|
||||
}
|
||||
}
|
||||
|
||||
@ -253,8 +253,8 @@ namespace TJAPlayer3
|
||||
|
||||
if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Tower)
|
||||
{
|
||||
TJAPlayer3.stage選曲.act曲リスト.ResolveTitleTexture(ttkTouTatsuKaiSuu).t2D描画(TJAPlayer3.app.Device, 550, 32);
|
||||
TJAPlayer3.stage選曲.act曲リスト.ResolveTitleTexture(ttkKai).t2D描画(TJAPlayer3.app.Device, 750, 104);
|
||||
TJAPlayer3.stage選曲.act曲リスト.ResolveTitleTexture(ttkTouTatsuKaiSuu).t2D描画(TJAPlayer3.app.Device, 350, 32);
|
||||
TJAPlayer3.stage選曲.act曲リスト.ResolveTitleTexture(ttkKai).t2D描画(TJAPlayer3.app.Device, 550, 104);
|
||||
|
||||
this.ct炎.t進行Loop();
|
||||
CFloorManagement.loopFrames();
|
||||
@ -278,7 +278,7 @@ namespace TJAPlayer3
|
||||
{
|
||||
int currentNum = int.Parse(floorStr[idx].ToString());
|
||||
|
||||
TJAPlayer3.Tx.Taiko_Combo[0].t2D描画(TJAPlayer3.app.Device, 756 - ((digitLength - 8) * (len - idx) * 1.4f),
|
||||
TJAPlayer3.Tx.Taiko_Combo[0].t2D描画(TJAPlayer3.app.Device, 556 - ((digitLength - 8) * (len - idx) * 1.4f),
|
||||
84,
|
||||
new Rectangle(digitLength * currentNum, 0,
|
||||
digitLength, TJAPlayer3.Tx.Taiko_Combo[0].szテクスチャサイズ.Height));
|
||||
|
@ -435,7 +435,10 @@ namespace TJAPlayer3
|
||||
base.b初めての進行描画 = false;
|
||||
}
|
||||
#endregion
|
||||
if ( ( ( TJAPlayer3.ConfigIni.nRisky != 0 && this.actGauge.IsFailed( E楽器パート.TAIKO ) ) || this.actGame.st叩ききりまショー.ct残り時間.b終了値に達した ) && ( base.eフェーズID == CStage.Eフェーズ.共通_通常状態 ) )
|
||||
if ( ( ( TJAPlayer3.ConfigIni.nRisky != 0 && this.actGauge.IsFailed( E楽器パート.TAIKO ) )
|
||||
|| this.actGame.st叩ききりまショー.ct残り時間.b終了値に達した
|
||||
|| (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Tower && CFloorManagement.CurrentNumberOfLives <= 0))
|
||||
&& ( base.eフェーズID == CStage.Eフェーズ.共通_通常状態 ))
|
||||
{
|
||||
this.actStageFailed.Start();
|
||||
TJAPlayer3.DTX.t全チップの再生停止();
|
||||
|
@ -319,6 +319,11 @@ namespace TJAPlayer3
|
||||
ctShine_Plate = new CCounter(0, 1000, 1, TJAPlayer3.Timer);
|
||||
ctWork_Plate = new CCounter(0, 4000, 1, TJAPlayer3.Timer);
|
||||
|
||||
if (TJAPlayer3.Tx.TowerResult_Background != null)
|
||||
ctTower_Animation = new CCounter(0, TJAPlayer3.Tx.TowerResult_Background.szテクスチャサイズ.Height - 720, 25, TJAPlayer3.Timer);
|
||||
else
|
||||
ctTower_Animation = new CCounter();
|
||||
|
||||
Dan_Plate = TJAPlayer3.tテクスチャの生成(Path.GetDirectoryName(TJAPlayer3.DTX.strファイル名の絶対パス) + @"\Dan_Plate.png");
|
||||
|
||||
|
||||
@ -666,7 +671,33 @@ namespace TJAPlayer3
|
||||
{
|
||||
#region [Tower result screen]
|
||||
|
||||
if (!b音声再生 && !TJAPlayer3.Skin.bgmTowerResult.b再生中)
|
||||
{
|
||||
TJAPlayer3.Skin.bgmTowerResult.t再生する();
|
||||
b音声再生 = true;
|
||||
}
|
||||
|
||||
// Pictures here
|
||||
|
||||
this.ctTower_Animation.t進行();
|
||||
|
||||
int xFactor = 0;
|
||||
float yFactor = 1f;
|
||||
if (TJAPlayer3.Tx.TowerResult_Background != null && TJAPlayer3.Tx.TowerResult_Tower[0] != null)
|
||||
{
|
||||
xFactor = (TJAPlayer3.Tx.TowerResult_Background.szテクスチャサイズ.Width - TJAPlayer3.Tx.TowerResult_Tower[0].szテクスチャサイズ.Width) / 2;
|
||||
yFactor = TJAPlayer3.Tx.TowerResult_Tower[0].szテクスチャサイズ.Height / (float)TJAPlayer3.Tx.TowerResult_Background.szテクスチャサイズ.Height;
|
||||
}
|
||||
|
||||
TJAPlayer3.Tx.TowerResult_Background?.t2D描画(TJAPlayer3.app.Device, 0, -1 * this.ctTower_Animation.n現在の値);
|
||||
TJAPlayer3.Tx.TowerResult_Tower[0]?.t2D描画(TJAPlayer3.app.Device, xFactor, -1 * yFactor * this.ctTower_Animation.n現在の値);
|
||||
TJAPlayer3.Tx.TowerResult_Panel?.t2D描画(TJAPlayer3.app.Device, 0, 0);
|
||||
|
||||
if (!b音声再生 && !TJAPlayer3.Skin.bgmTowerResult.b再生中)
|
||||
{
|
||||
TJAPlayer3.Skin.bgmTowerResult.t再生する();
|
||||
b音声再生 = true;
|
||||
}
|
||||
|
||||
|
||||
#endregion
|
||||
@ -752,6 +783,7 @@ namespace TJAPlayer3
|
||||
this.eフェードアウト完了時の戻り値 = E戻り値.完了;
|
||||
TJAPlayer3.Skin.bgmリザルト音.t停止する();
|
||||
TJAPlayer3.Skin.bgmDanResult.t停止する();
|
||||
TJAPlayer3.Skin.bgmTowerResult.t停止する();
|
||||
TJAPlayer3.Skin.sound決定音.t再生する();
|
||||
}
|
||||
}
|
||||
@ -927,6 +959,9 @@ namespace TJAPlayer3
|
||||
// Dan informations
|
||||
private CTexture Dan_Plate;
|
||||
|
||||
// Tower informations
|
||||
private CCounter ctTower_Animation;
|
||||
|
||||
private CCounter ctAutoReturn;
|
||||
//private CTexture txオプションパネル;
|
||||
//private CTexture tx下部パネル;
|
||||
|
@ -1 +1 @@
|
||||
Subproject commit cfa3580a0dab1354420d2d306c059cb7c30de91c
|
||||
Subproject commit dcc5f2f6230cf9c647451687acf1fcb824607189
|
Loading…
Reference in New Issue
Block a user