1
0
mirror of synced 2024-11-27 17:00:50 +01:00

Few more cleaning and translate some classes names to english

This commit is contained in:
0auBSQ 2024-06-19 05:01:24 +09:00
parent abaa830ac1
commit 60a221e3b0
32 changed files with 5826 additions and 6567 deletions

View File

@ -318,9 +318,6 @@ namespace TJAPlayer3
// メソッド
protected virtual void tコンボ表示_ドラム(int nCombo値, int nジャンプインデックス)
{
}
private void showComboEffect(int cat, int i, int rightX, int y, int nPlayer)
{
@ -601,25 +598,6 @@ namespace TJAPlayer3
#endregion
}
protected virtual void tコンボ表示_ギター(int nCombo値, int nジャンプインデックス)
{
}
protected virtual void tコンボ表示_ベース(int nCombo値, int nジャンプインデックス)
{
}
protected void tコンボ表示_ギター(int nCombo値, int n表示中央X, int n表示中央Y, int nジャンプインデックス)
{
}
protected void tコンボ表示_ベース(int nCombo値, int n表示中央X, int n表示中央Y, int nジャンプインデックス)
{
}
protected void tコンボ表示_ギターベース(int nCombo値, int n表示中央X, int n表示中央Y, int nジャンプインデックス)
{
}
// CActivity 実装
public override void Activate()

View File

@ -1,63 +0,0 @@
using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using FDK;
namespace TJAPlayer3
{
internal abstract class CAct演奏Danger共通 : CActivity
{
// コンストラクタ
public CAct演奏Danger共通()
{
base.IsDeActivated = true;
}
// CActivity 実装
public override void Activate()
{
for ( int i = 0; i < 3; i++ )
{
this.bDanger中[i] = false;
}
// this.ct移動用 = new CCounter();
// this.ct透明度用 = new CCounter();
this.ct移動用 = null;
this.ct透明度用 = null;
base.Activate();
}
public override void DeActivate()
{
this.ct移動用 = null;
this.ct透明度用 = null;
base.DeActivate();
}
/// <summary>
/// DANGER描画
/// </summary>
/// <param name="bIsDangerDrums">DrumsがDangerならtrue</param>
/// <param name="bIsDamgerGuitar">GuitarがDangerならtrue</param>
/// <param name="bIsDangerBass">BassがDangerならtrue</param>
/// <returns></returns>
public abstract int t進行描画( bool bIsDangerDrums, bool bIsDamgerGuitar, bool bIsDangerBass );
// その他
#region [ private ]
//-----------------
protected bool[] bDanger中 = { false, false, false};
protected CCounter ct移動用;
protected CCounter ct透明度用;
//-----------------
#endregion
}
}

View File

@ -1,134 +0,0 @@
using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
using System.Drawing;
using System.Diagnostics;
using FDK;
namespace TJAPlayer3
{
internal class CAct演奏ステータスパネル共通 : CActivity
{
// コンストラクタ
public CAct演奏ステータスパネル共通()
{
this.stパネルマップ = new STATUSPANEL[ 12 ]; // yyagi: 以下、手抜きの初期化でスマン
// { "DTXMANIA", 0 }, { "EXTREME", 1 }, ... みたいに書きたいが___
string[] labels = new string[ 12 ] {
"DTXMANIA", "EXTREME", "ADVANCED", "ADVANCE", "BASIC", "RAW",
"REAL", "EASY", "EX-REAL", "ExREAL", "ExpertReal", "NORMAL"
};
int[] status = new int[ 12 ] {
0, 1, 2, 2, 3, 4, 5, 6, 7, 7, 7, 8
};
for ( int i = 0; i < 12; i++ )
{
this.stパネルマップ[ i ] = new STATUSPANEL();
this.stパネルマップ[ i ].status = status[ i ];
this.stパネルマップ[ i ].label = labels[ i ];
}
#region [ () ]
//STATUSPANEL[] statuspanelArray = new STATUSPANEL[ 12 ];
//STATUSPANEL statuspanel = new STATUSPANEL();
//statuspanel.status = 0;
//statuspanel.label = "DTXMANIA";
//statuspanelArray[ 0 ] = statuspanel;
//STATUSPANEL statuspanel2 = new STATUSPANEL();
//statuspanel2.status = 1;
//statuspanel2.label = "EXTREME";
//statuspanelArray[ 1 ] = statuspanel2;
//STATUSPANEL statuspanel3 = new STATUSPANEL();
//statuspanel3.status = 2;
//statuspanel3.label = "ADVANCED";
//statuspanelArray[ 2 ] = statuspanel3;
//STATUSPANEL statuspanel4 = new STATUSPANEL();
//statuspanel4.status = 2;
//statuspanel4.label = "ADVANCE";
//statuspanelArray[ 3 ] = statuspanel4;
//STATUSPANEL statuspanel5 = new STATUSPANEL();
//statuspanel5.status = 3;
//statuspanel5.label = "BASIC";
//statuspanelArray[ 4 ] = statuspanel5;
//STATUSPANEL statuspanel6 = new STATUSPANEL();
//statuspanel6.status = 4;
//statuspanel6.label = "RAW";
//statuspanelArray[ 5 ] = statuspanel6;
//STATUSPANEL statuspanel7 = new STATUSPANEL();
//statuspanel7.status = 5;
//statuspanel7.label = "REAL";
//statuspanelArray[ 6 ] = statuspanel7;
//STATUSPANEL statuspanel8 = new STATUSPANEL();
//statuspanel8.status = 6;
//statuspanel8.label = "EASY";
//statuspanelArray[ 7 ] = statuspanel8;
//STATUSPANEL statuspanel9 = new STATUSPANEL();
//statuspanel9.status = 7;
//statuspanel9.label = "EX-REAL";
//statuspanelArray[ 8 ] = statuspanel9;
//STATUSPANEL statuspanel10 = new STATUSPANEL();
//statuspanel10.status = 7;
//statuspanel10.label = "ExREAL";
//statuspanelArray[ 9 ] = statuspanel10;
//STATUSPANEL statuspanel11 = new STATUSPANEL();
//statuspanel11.status = 7;
//statuspanel11.label = "ExpertReal";
//statuspanelArray[ 10 ] = statuspanel11;
//STATUSPANEL statuspanel12 = new STATUSPANEL();
//statuspanel12.status = 8;
//statuspanel12.label = "NORMAL";
//statuspanelArray[ 11 ] = statuspanel12;
//this.stパネルマップ = statuspanelArray;
#endregion
base.IsDeActivated = true;
}
// メソッド
public void tラベル名からステータスパネルを決定する( string strラベル名 )
{
if ( string.IsNullOrEmpty( strラベル名 ) )
{
this.nStatus = 0;
}
else
{
foreach ( STATUSPANEL statuspanel in this.stパネルマップ )
{
if ( strラベル名.Equals( statuspanel.label, StringComparison.CurrentCultureIgnoreCase ) ) // #24482 2011.2.17 yyagi ignore case
{
this.nStatus = statuspanel.status;
return;
}
}
this.nStatus = 0;
}
}
// CActivity 実装
public override void Activate()
{
this.nStatus = 0;
base.Activate();
}
#region [ protected ]
//-----------------
[StructLayout( LayoutKind.Sequential )]
protected struct STATUSPANEL
{
public string label;
public int status;
}
protected int nStatus;
protected STATUSPANEL[] stパネルマップ = null;
//-----------------
#endregion
}
}

View File

@ -356,7 +356,6 @@ namespace TJAPlayer3
cInvisibleChip.Reset();
base.Activate();
this.tステータスパネルの選択();
this.tパネル文字列の設定();
//this.演奏判定ライン座標();
this.bIsGOGOTIME = new bool[] { false, false, false, false, false };
@ -774,36 +773,34 @@ namespace TJAPlayer3
public CAct演奏AVI actAVI;
public Rainbow Rainbow;
public CAct演奏Combo共通 actCombo;
protected CAct演奏Danger共通 actDANGER;
//protected CActFIFOBlack actFI;
public CActFIFOStart actFI;
protected CActFIFOBlack actFO;
protected CActFIFOResult actFOClear;
public CAct演奏ゲージ共通 actGauge;
public CAct演奏DrumsDancer actDancer;
protected CAct演奏Drums判定文字列 actJudgeString;
public CActImplDancer actDancer;
protected CActImplJudgeText actJudgeString;
public TaikoLaneFlash actTaikoLaneFlash;
public CAct演奏パネル文字列 actPanel;
public CAct演奏演奏情報 actPlayInfo;
public CAct演奏スコア共通 actScore;
public CAct演奏ステージ失敗 actStageFailed;
protected CAct演奏ステータスパネル共通 actStatusPanels;
protected CAct演奏スクロール速度 act譜面スクロール速度;
protected CAct演奏Drums連打 actRoll;
protected CAct演奏Drums風船 actBalloon;
public CAct演奏Drumsキャラクター actChara;
protected CAct演奏Drums連打キャラ actRollChara;
protected CAct演奏Drumsコンボ吹き出し actComboBalloon;
protected CActImplRoll actRoll;
protected CActImplBalloon actBalloon;
public CActImplCharacter actChara;
protected CActImplRollEffect actRollChara;
protected CActImplComboBalloon actComboBalloon;
protected CAct演奏Combo音声 actComboVoice;
protected CAct演奏PauseMenu actPauseMenu;
public CAct演奏Drumsチップエフェクト actChipEffects;
public CAct演奏DrumsFooter actFooter;
public CAct演奏DrumsRunner actRunner;
public CAct演奏DrumsMob actMob;
public CActImplChipEffects actChipEffects;
public CActImplFooter actFooter;
public CActImplRunner actRunner;
public CActImplMob actMob;
public Dan_Cert actDan;
public AIBattle actAIBattle;
public CAct演奏DrumsTrainingMode actTokkun;
public CActImplTrainingMode actTokkun;
public bool bPAUSE;
public bool[] bIsAlreadyCleared;
public bool[] bIsAlreadyMaxed;
@ -1328,18 +1325,6 @@ namespace TJAPlayer3
this.nHand[ nPlayer ] = 0;
}
protected void tステータスパネルの選択()
{
if ( TJAPlayer3.bコンパクトモード )
{
this.actStatusPanels.tラベル名からステータスパネルを決定する( null );
}
else if ( TJAPlayer3.stageSongSelect.rChoosenSong != null )
{
this.actStatusPanels.tラベル名からステータスパネルを決定する( TJAPlayer3.stageSongSelect.rChoosenSong.ar難易度ラベル[ TJAPlayer3.stageSongSelect.nChoosenSongDifficulty[0]] );
}
}
protected bool tRollProcess( CDTX.CChip pChip, double dbProcess_time, int num, int sort, int Input, int nPlayer )
{
if (dbProcess_time >= pChip.n発声時刻ms && dbProcess_time < pChip.nーツ終了時刻ms)
@ -1513,7 +1498,7 @@ namespace TJAPlayer3
{
if (nCurrentKusudamaCount > 0)
{
actChara.ChangeAnime(player, CAct演奏Drumsキャラクター.Anime.Kusudama_Breaking, true);
actChara.ChangeAnime(player, CActImplCharacter.Anime.Kusudama_Breaking, true);
for(int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)
{
this.b連打中[i] = true;
@ -1534,7 +1519,7 @@ namespace TJAPlayer3
else
{
this.b連打中[player] = true;
actChara.ChangeAnime(player, CAct演奏Drumsキャラクター.Anime.Balloon_Breaking, true);
actChara.ChangeAnime(player, CActImplCharacter.Anime.Balloon_Breaking, true);
if (this.actBalloon.ct風船アニメ[player].IsUnEnded)
@ -1629,7 +1614,7 @@ namespace TJAPlayer3
actBalloon.KusuBroke();
for(int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)
{
actChara.ChangeAnime(i, CAct演奏Drumsキャラクター.Anime.Kusudama_Broke, true);
actChara.ChangeAnime(i, CActImplCharacter.Anime.Kusudama_Broke, true);
if (actChara.CharaAction_Balloon_Delay[i] != null) actChara.CharaAction_Balloon_Delay[i] = new CCounter(0, TJAPlayer3.Skin.Characters_Balloon_Delay[actChara.iCurrentCharacter[i]] - 1, 1, TJAPlayer3.Timer);
}
}
@ -1648,7 +1633,7 @@ namespace TJAPlayer3
//this.actChara.b風船連打中 = false;
pChip.b可視 = false;
{
actChara.ChangeAnime(player, CAct演奏Drumsキャラクター.Anime.Balloon_Broke, true);
actChara.ChangeAnime(player, CActImplCharacter.Anime.Balloon_Broke, true);
if (actChara.CharaAction_Balloon_Delay[player] != null) actChara.CharaAction_Balloon_Delay[player] = new CCounter(0, TJAPlayer3.Skin.Characters_Balloon_Delay[actChara.iCurrentCharacter[player]] - 1, 1, TJAPlayer3.Timer);
}
}
@ -1977,7 +1962,7 @@ namespace TJAPlayer3
{
if(TJAPlayer3.Skin.Characters_Become_Maxed_Ptn[Character] != 0 && actChara.CharaAction_Balloon_Delay[nPlayer].IsEnded)
{
this.actChara.ChangeAnime(nPlayer, CAct演奏Drumsキャラクター.Anime.Become_Maxed, true);
this.actChara.ChangeAnime(nPlayer, CActImplCharacter.Anime.Become_Maxed, true);
}
this.bIsAlreadyMaxed[nPlayer] = true;
}
@ -1985,7 +1970,7 @@ namespace TJAPlayer3
{
if(TJAPlayer3.Skin.Characters_Become_Cleared_Ptn[Character] != 0 && actChara.CharaAction_Balloon_Delay[nPlayer].IsEnded)
{
this.actChara.ChangeAnime(nPlayer, CAct演奏Drumsキャラクター.Anime.Become_Cleared, true);
this.actChara.ChangeAnime(nPlayer, CActImplCharacter.Anime.Become_Cleared, true);
}
this.bIsAlreadyCleared[nPlayer] = true;
TJAPlayer3.stage演奏ドラム画面.actBackground.ClearIn(nPlayer);
@ -2003,7 +1988,7 @@ namespace TJAPlayer3
this.bIsAlreadyMaxed[nPlayer] = false;
if(TJAPlayer3.Skin.Characters_SoulOut_Ptn[Character] != 0 && actChara.CharaAction_Balloon_Delay[nPlayer].IsEnded)
{
this.actChara.ChangeAnime(nPlayer, CAct演奏Drumsキャラクター.Anime.SoulOut, true);
this.actChara.ChangeAnime(nPlayer, CActImplCharacter.Anime.SoulOut, true);
}
}
else if (!bIsGOGOTIME[nPlayer])
@ -2012,14 +1997,14 @@ namespace TJAPlayer3
{
if(TJAPlayer3.Skin.Characters_MissIn_Ptn[Character] != 0 && actChara.CharaAction_Balloon_Delay[nPlayer].IsEnded)
{
this.actChara.ChangeAnime(nPlayer, CAct演奏Drumsキャラクター.Anime.MissIn, true);
this.actChara.ChangeAnime(nPlayer, CActImplCharacter.Anime.MissIn, true);
}
}
else if (Chara_MissCount[nPlayer] == 6 - 1)
{
if(TJAPlayer3.Skin.Characters_MissDownIn_Ptn[Character] != 0 && actChara.CharaAction_Balloon_Delay[nPlayer].IsEnded)
{
this.actChara.ChangeAnime(nPlayer, CAct演奏Drumsキャラクター.Anime.MissDownIn, true);
this.actChara.ChangeAnime(nPlayer, CActImplCharacter.Anime.MissDownIn, true);
}
}
}
@ -2028,7 +2013,7 @@ namespace TJAPlayer3
this.bIsAlreadyCleared[nPlayer] = false;
if (TJAPlayer3.Skin.Characters_ClearOut_Ptn[Character] != 0 && actChara.CharaAction_Balloon_Delay[nPlayer].IsEnded)
{
this.actChara.ChangeAnime(nPlayer, CAct演奏Drumsキャラクター.Anime.ClearOut, true);
this.actChara.ChangeAnime(nPlayer, CActImplCharacter.Anime.ClearOut, true);
}
TJAPlayer3.stage演奏ドラム画面.actBackground.ClearOut(nPlayer);
@ -2072,7 +2057,7 @@ namespace TJAPlayer3
{
// 魂ゲージMAXではない
// ジャンプ_ーマル
this.actChara.ChangeAnime(nPlayer, CAct演奏Drumsキャラクター.Anime.Return, true);
this.actChara.ChangeAnime(nPlayer, CActImplCharacter.Anime.Return, true);
//this.actChara.キャラクター_アクション_10コンボ();
}
}
@ -2375,22 +2360,22 @@ namespace TJAPlayer3
// Edit character values here
if (!pChip.bGOGOTIME) //2018.03.11 kairera0467 チップに埋め込んだフラグから読み取る
{
if (TJAPlayer3.Skin.Characters_10Combo_Ptn[Character] != 0 && this.actChara.eNowAnime[nPlayer] != CAct演奏Drumsキャラクター.Anime.Combo10 && actChara.CharaAction_Balloon_Delay[nPlayer].IsEnded)
if (TJAPlayer3.Skin.Characters_10Combo_Ptn[Character] != 0 && this.actChara.eNowAnime[nPlayer] != CActImplCharacter.Anime.Combo10 && actChara.CharaAction_Balloon_Delay[nPlayer].IsEnded)
{
if (!HGaugeMethods.UNSAFE_IsRainbow(nPlayer))
{
// 魂ゲージMAXではない
// ジャンプ_ーマル
this.actChara.ChangeAnime(nPlayer, CAct演奏Drumsキャラクター.Anime.Combo10, true);
this.actChara.ChangeAnime(nPlayer, CActImplCharacter.Anime.Combo10, true);
}
}
if (TJAPlayer3.Skin.Characters_10Combo_Maxed_Ptn[Character] != 0 && this.actChara.eNowAnime[nPlayer] != CAct演奏Drumsキャラクター.Anime.Combo10_Max && actChara.CharaAction_Balloon_Delay[nPlayer].IsEnded)
if (TJAPlayer3.Skin.Characters_10Combo_Maxed_Ptn[Character] != 0 && this.actChara.eNowAnime[nPlayer] != CActImplCharacter.Anime.Combo10_Max && actChara.CharaAction_Balloon_Delay[nPlayer].IsEnded)
{
if (HGaugeMethods.UNSAFE_IsRainbow(nPlayer))
{
// 魂ゲージMAX
// ジャンプ_MAX
this.actChara.ChangeAnime(nPlayer, CAct演奏Drumsキャラクター.Anime.Combo10_Max, true);
this.actChara.ChangeAnime(nPlayer, CActImplCharacter.Anime.Combo10_Max, true);
}
}
}
@ -3342,8 +3327,6 @@ namespace TJAPlayer3
this.actAVI.t進行描画( x, y );
}
}
protected abstract void t進行描画_DANGER();
protected void t進行描画_STAGEFAILED()
{
// Transition for failed games
@ -3684,7 +3667,7 @@ namespace TJAPlayer3
for (int p = 0; p < TJAPlayer3.ConfigIni.nPlayerCount; p++)
{
{
this.actChara.ChangeAnime(p, CAct演奏Drumsキャラクター.Anime.Kusudama_Miss, true);
this.actChara.ChangeAnime(p, CActImplCharacter.Anime.Kusudama_Miss, true);
if (actChara.CharaAction_Balloon_Delay[p] != null) actChara.CharaAction_Balloon_Delay[p] = new CCounter(0,
TJAPlayer3.Skin.Characters_Balloon_Delay[actChara.iCurrentCharacter[p]] - 1,
@ -3704,7 +3687,7 @@ namespace TJAPlayer3
&& chip現在処理中の連打チップ[nPlayer].nRollCount > 0)
{
{
this.actChara.ChangeAnime(nPlayer, CAct演奏Drumsキャラクター.Anime.Balloon_Miss, true);
this.actChara.ChangeAnime(nPlayer, CActImplCharacter.Anime.Balloon_Miss, true);
if (actChara.CharaAction_Balloon_Delay[nPlayer] != null) actChara.CharaAction_Balloon_Delay[nPlayer] = new CCounter(0,
TJAPlayer3.Skin.Characters_Balloon_Delay[actChara.iCurrentCharacter[nPlayer]] - 1,
@ -4047,7 +4030,7 @@ namespace TJAPlayer3
{
// 魂ゲージMAXではない
// ゴーゴースタート_ーマル
this.actChara.ChangeAnime(nPlayer, CAct演奏Drumsキャラクター.Anime.GoGoStart, true);
this.actChara.ChangeAnime(nPlayer, CActImplCharacter.Anime.GoGoStart, true);
//this.actChara.キャラクター_アクション_10コンボ();
}
}
@ -4055,7 +4038,7 @@ namespace TJAPlayer3
{
if (!HGaugeMethods.UNSAFE_IsRainbow(nPlayer) && HGaugeMethods.UNSAFE_FastNormaCheck(nPlayer))
{
this.actChara.ChangeAnime(nPlayer, CAct演奏Drumsキャラクター.Anime.GoGoStart_Clear, true);
this.actChara.ChangeAnime(nPlayer, CActImplCharacter.Anime.GoGoStart_Clear, true);
}
}
if (TJAPlayer3.Skin.Characters_GoGoStart_Maxed_Ptn[Character] != 0 && actChara.CharaAction_Balloon_Delay[nPlayer].IsEnded)
@ -4064,7 +4047,7 @@ namespace TJAPlayer3
{
// 魂ゲージMAX
// ゴーゴースタート_MAX
this.actChara.ChangeAnime(nPlayer, CAct演奏Drumsキャラクター.Anime.GoGoStart_Max, true);
this.actChara.ChangeAnime(nPlayer, CActImplCharacter.Anime.GoGoStart_Max, true);
}
}

View File

@ -1,350 +1,297 @@
using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using System.Diagnostics;
using System.Runtime.InteropServices;
using FDK;
namespace TJAPlayer3
{
internal class CAct演奏Drums風船 : CActivity
{
public CAct演奏Drums風船()
{
ST文字位置[] st文字位置Array = new ST文字位置[11];
ST文字位置 st文字位置 = new ST文字位置();
st文字位置.ch = '0';
st文字位置.pt = new Point(0, 0);
st文字位置Array[0] = st文字位置;
ST文字位置 st文字位置2 = new ST文字位置();
st文字位置2.ch = '1';
st文字位置2.pt = new Point(62, 0);
st文字位置Array[1] = st文字位置2;
ST文字位置 st文字位置3 = new ST文字位置();
st文字位置3.ch = '2';
st文字位置3.pt = new Point(124, 0);
st文字位置Array[2] = st文字位置3;
ST文字位置 st文字位置4 = new ST文字位置();
st文字位置4.ch = '3';
st文字位置4.pt = new Point(186, 0);
st文字位置Array[3] = st文字位置4;
ST文字位置 st文字位置5 = new ST文字位置();
st文字位置5.ch = '4';
st文字位置5.pt = new Point(248, 0);
st文字位置Array[4] = st文字位置5;
ST文字位置 st文字位置6 = new ST文字位置();
st文字位置6.ch = '5';
st文字位置6.pt = new Point(310, 0);
st文字位置Array[5] = st文字位置6;
ST文字位置 st文字位置7 = new ST文字位置();
st文字位置7.ch = '6';
st文字位置7.pt = new Point(372, 0);
st文字位置Array[6] = st文字位置7;
ST文字位置 st文字位置8 = new ST文字位置();
st文字位置8.ch = '7';
st文字位置8.pt = new Point(434, 0);
st文字位置Array[7] = st文字位置8;
ST文字位置 st文字位置9 = new ST文字位置();
st文字位置9.ch = '8';
st文字位置9.pt = new Point(496, 0);
st文字位置Array[8] = st文字位置9;
ST文字位置 st文字位置10 = new ST文字位置();
st文字位置10.ch = '9';
st文字位置10.pt = new Point(558, 0);
st文字位置Array[9] = st文字位置10;
this.st文字位置 = st文字位置Array;
base.IsDeActivated = true;
}
public override void Activate()
{
this.ct風船終了 = new CCounter();
this.ct風船ふきだしアニメ = new CCounter();
this.ct風船アニメ = new CCounter[5];
for (int i = 0; i < 5; i++)
{
this.ct風船アニメ[i] = new CCounter();
}
this.ct風船ふきだしアニメ = new CCounter(0, 1, 100, TJAPlayer3.Timer);
KusudamaScript = new (CSkin.Path($"{TextureLoader.BASE}{TextureLoader.GAME}{TextureLoader.BALLOON}{TextureLoader.KUSUDAMA}Script.lua"));
KusudamaScript.Init();
base.Activate();
}
public override void DeActivate()
{
KusudamaScript.Dispose();
this.ct風船終了 = null;
this.ct風船ふきだしアニメ = null;
base.DeActivate();
}
public override void CreateManagedResource()
{
base.CreateManagedResource();
}
public override void ReleaseManagedResource()
{
base.ReleaseManagedResource();
}
public override int Draw()
{
return base.Draw();
}
public void KusuIn() => KusudamaScript.KusuIn();
public void KusuBroke() => KusudamaScript.KusuBroke();
public void KusuMiss() => KusudamaScript.KusuMiss();
public enum EBalloonType
{
BALLOON,
KUSUDAMA,
FUSEROLL
}
public void tDrawKusudama()
{
if (!TJAPlayer3.stage演奏ドラム画面.bPAUSE)
{
KusudamaScript.Update();
}
KusudamaScript.Draw();
}
public int On進行描画(int n連打ルマ, int n連打数, int player, EBalloonType btype)
{
this.ct風船ふきだしアニメ.TickLoop();
this.ct風船アニメ[player].Tick();
//CDTXMania.act文字コンソール.tPrint( 0, 16, C文字コンソール.Eフォント種別.赤, this.ct風船終了.n現在の値.ToString() );
int[] n残り打数 = new int[] { 0, 0, 0, 0, 0 };
#region[ ]
if (n連打ルマ > 0)
{
if (n連打ルマ < 5)
{
n残り打数 = new int[] { 4, 3, 2, 1, 0 };
}
else
{
n残り打数[0] = (n連打ルマ / 5) * 4;
n残り打数[1] = (n連打ルマ / 5) * 3;
n残り打数[2] = (n連打ルマ / 5) * 2;
n残り打数[3] = (n連打ルマ / 5) * 1;
}
}
#endregion
if (n連打数 != 0)
{
int x;
int y;
int frame_x;
int frame_y;
int num_x;
int num_y;
if (TJAPlayer3.ConfigIni.nPlayerCount == 5)
{
x = TJAPlayer3.Skin.Game_Balloon_Balloon_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * player);
y = TJAPlayer3.Skin.Game_Balloon_Balloon_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * player);
frame_x = TJAPlayer3.Skin.Game_Balloon_Balloon_Frame_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * player);
frame_y = TJAPlayer3.Skin.Game_Balloon_Balloon_Frame_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * player);
num_x = TJAPlayer3.Skin.Game_Balloon_Balloon_Number_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * player);
num_y = TJAPlayer3.Skin.Game_Balloon_Balloon_Number_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * player);
}
else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3)
{
x = TJAPlayer3.Skin.Game_Balloon_Balloon_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * player);
y = TJAPlayer3.Skin.Game_Balloon_Balloon_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * player);
frame_x = TJAPlayer3.Skin.Game_Balloon_Balloon_Frame_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * player);
frame_y = TJAPlayer3.Skin.Game_Balloon_Balloon_Frame_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * player);
num_x = TJAPlayer3.Skin.Game_Balloon_Balloon_Number_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * player);
num_y = TJAPlayer3.Skin.Game_Balloon_Balloon_Number_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * player);
}
else
{
x = TJAPlayer3.Skin.Game_Balloon_Balloon_X[player];
y = TJAPlayer3.Skin.Game_Balloon_Balloon_Y[player];
frame_x = TJAPlayer3.Skin.Game_Balloon_Balloon_Frame_X[player];
frame_y = TJAPlayer3.Skin.Game_Balloon_Balloon_Frame_Y[player];
num_x = TJAPlayer3.Skin.Game_Balloon_Balloon_Number_X[player];
num_y = TJAPlayer3.Skin.Game_Balloon_Balloon_Number_Y[player];
}
//1P:0 2P:245
//if (CDTXMania.Tx.Chara_Balloon_Breaking != null && CDTXMania.ConfigIni.ShowChara)
// CDTXMania.Tx.Chara_Balloon_Breaking.t2D描画(CDTXMania.app.Device, CDTXMania.Skin.Game_Chara_Balloon_X[player], CDTXMania.Skin.Game_Chara_Balloon_Y[player]);
for (int j = 0; j < 5; j++)
{
if (n残り打数[j] < n連打数 && btype == EBalloonType.BALLOON)
{
if (TJAPlayer3.Tx.Balloon_Breaking[j] != null)
TJAPlayer3.Tx.Balloon_Breaking[j].t2D描画(x + (this.ct風船ふきだしアニメ.CurrentValue == 1 ? 3 : 0), y);
break;
}
}
//1P:31 2P:329
if (btype == EBalloonType.BALLOON)
{
if (TJAPlayer3.Tx.Balloon_Balloon != null)
TJAPlayer3.Tx.Balloon_Balloon.t2D描画(frame_x, frame_y);
this.t文字表示(num_x, num_y, n連打数, player);
}
else if (btype == EBalloonType.FUSEROLL)
{
if (TJAPlayer3.Tx.Fuse_Balloon != null)
TJAPlayer3.Tx.Fuse_Balloon.t2D描画(frame_x, frame_y);
this.tFuseNumber(num_x, num_y, n連打数, player);
}
else if (btype == EBalloonType.KUSUDAMA && player == 0)
{
/*
if (TJAPlayer3.Tx.Kusudama_Back != null)
TJAPlayer3.Tx.Kusudama_Back.t2D描画(0, 0);
if (TJAPlayer3.Tx.Kusudama != null)
TJAPlayer3.Tx.Kusudama.t2D描画(0, 0);
*/
this.tKusudamaNumber(n連打数);
}
//CDTXMania.act文字コンソール.tPrint( 0, 0, C文字コンソール.Eフォント種別.白, n連打数.ToString() );
}
if (btype == EBalloonType.KUSUDAMA)
{
/*
for(int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)
{
TJAPlayer3.stage演奏ドラム画面.actChara.b風船連打中[i] = false;
TJAPlayer3.stage演奏ドラム画面.b連打中[i] = false;
}
*/
}
else
{
if (n連打数 == 0 && TJAPlayer3.stage演奏ドラム画面.actChara.b風船連打中[player])
{
TJAPlayer3.stage演奏ドラム画面.actChara.b風船連打中[player] = false;
TJAPlayer3.stage演奏ドラム画面.b連打中[player] = false;
}
}
return base.Draw();
}
private KusudamaScript KusudamaScript;
//private CTexture tx連打枠;
//private CTexture tx連打数字;
private readonly ST文字位置[] st文字位置;
//private CTexture txキャラクター;
//private CTexture txキャラクター_風船終了;
//private CTexture[] tx風船枠 = new CTexture[6];
private CCounter ct風船終了;
private CCounter ct風船ふきだしアニメ;
public CCounter[] ct風船アニメ;
private float[] RollScale = new float[]
{
0.000f,
0.123f, // リピート
0.164f,
0.164f,
0.164f,
0.137f,
0.110f,
0.082f,
0.055f,
0.000f
};
[StructLayout(LayoutKind.Sequential)]
private struct ST文字位置
{
public char ch;
public Point pt;
}
private void _nbDisplay(CTexture tx, int num, int x, int y)
{
int[] nums = CConversion.SeparateDigits(num);
for (int j = 0; j < nums.Length; j++)
{
float offset = j - (nums.Length / 2.0f);
float _x = x - (TJAPlayer3.Skin.Game_Balloon_Number_Interval[0] * offset);
float _y = y - (TJAPlayer3.Skin.Game_Balloon_Number_Interval[1] * offset);
float width = tx.sz画像サイズ.Width / 10.0f;
float height = tx.sz画像サイズ.Height;
tx.t2D拡大率考慮下基準描画(_x, _y, new RectangleF(width * nums[j], 0, width, height));
}
}
private void tKusudamaNumber(int num)
{
if (TJAPlayer3.Tx.Kusudama_Number == null) return;
TJAPlayer3.Tx.Kusudama_Number.vcScaleRatio.X = TJAPlayer3.Skin.Game_Balloon_Balloon_Number_Scale;
TJAPlayer3.Tx.Kusudama_Number.vcScaleRatio.Y = TJAPlayer3.Skin.Game_Balloon_Balloon_Number_Scale;
int x = TJAPlayer3.Skin.Game_Kusudama_Number_X;
int y = TJAPlayer3.Skin.Game_Kusudama_Number_Y;
int[] nums = CConversion.SeparateDigits(num);
for (int j = 0; j < nums.Length; j++)
{
float offset = j - ((nums.Length - 2) / 2.0f);
float width = TJAPlayer3.Tx.Kusudama_Number.sz画像サイズ.Width / 10.0f;
float height = TJAPlayer3.Tx.Kusudama_Number.sz画像サイズ.Height;
float _x = x - (width * offset);
float _y = y;
TJAPlayer3.Tx.Kusudama_Number.t2D拡大率考慮下基準描画(_x, _y, new RectangleF(width * nums[j], 0, width, height));
}
}
private void tFuseNumber(int x, int y, int num, int nPlayer)
{
if (TJAPlayer3.Tx.Fuse_Number == null) return;
TJAPlayer3.Tx.Fuse_Number.vcScaleRatio.X = TJAPlayer3.Skin.Game_Balloon_Balloon_Number_Scale;
TJAPlayer3.Tx.Fuse_Number.vcScaleRatio.Y = TJAPlayer3.Skin.Game_Balloon_Balloon_Number_Scale + RollScale[this.ct風船アニメ[nPlayer].CurrentValue];
_nbDisplay(TJAPlayer3.Tx.Fuse_Number, num, x, y);
}
private void t文字表示(int x, int y, int num, int nPlayer)
{
if (TJAPlayer3.Tx.Balloon_Number_Roll == null) return;
TJAPlayer3.Tx.Balloon_Number_Roll.vcScaleRatio.X = TJAPlayer3.Skin.Game_Balloon_Balloon_Number_Scale;
TJAPlayer3.Tx.Balloon_Number_Roll.vcScaleRatio.Y = TJAPlayer3.Skin.Game_Balloon_Balloon_Number_Scale + RollScale[this.ct風船アニメ[nPlayer].CurrentValue];
_nbDisplay(TJAPlayer3.Tx.Balloon_Number_Roll, num, x, y);
}
public void tEnd()
{
this.ct風船終了 = new CCounter(0, 80, 10, SoundManager.PlayTimer);
}
}
}
using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using System.Diagnostics;
using System.Runtime.InteropServices;
using FDK;
namespace TJAPlayer3
{
internal class CActImplBalloon : CActivity
{
public CActImplBalloon()
{
base.IsDeActivated = true;
}
public override void Activate()
{
this.ct風船終了 = new CCounter();
this.ct風船ふきだしアニメ = new CCounter();
this.ct風船アニメ = new CCounter[5];
for (int i = 0; i < 5; i++)
{
this.ct風船アニメ[i] = new CCounter();
}
this.ct風船ふきだしアニメ = new CCounter(0, 1, 100, TJAPlayer3.Timer);
KusudamaScript = new (CSkin.Path($"{TextureLoader.BASE}{TextureLoader.GAME}{TextureLoader.BALLOON}{TextureLoader.KUSUDAMA}Script.lua"));
KusudamaScript.Init();
base.Activate();
}
public override void DeActivate()
{
KusudamaScript.Dispose();
this.ct風船終了 = null;
this.ct風船ふきだしアニメ = null;
base.DeActivate();
}
public override void CreateManagedResource()
{
base.CreateManagedResource();
}
public override void ReleaseManagedResource()
{
base.ReleaseManagedResource();
}
public override int Draw()
{
return base.Draw();
}
public void KusuIn() => KusudamaScript.KusuIn();
public void KusuBroke() => KusudamaScript.KusuBroke();
public void KusuMiss() => KusudamaScript.KusuMiss();
public enum EBalloonType
{
BALLOON,
KUSUDAMA,
FUSEROLL
}
public void tDrawKusudama()
{
if (!TJAPlayer3.stage演奏ドラム画面.bPAUSE)
{
KusudamaScript.Update();
}
KusudamaScript.Draw();
}
public int On進行描画(int n連打ルマ, int n連打数, int player, EBalloonType btype)
{
this.ct風船ふきだしアニメ.TickLoop();
this.ct風船アニメ[player].Tick();
//CDTXMania.act文字コンソール.tPrint( 0, 16, C文字コンソール.Eフォント種別.赤, this.ct風船終了.n現在の値.ToString() );
int[] n残り打数 = new int[] { 0, 0, 0, 0, 0 };
#region[ ]
if (n連打ルマ > 0)
{
if (n連打ルマ < 5)
{
n残り打数 = new int[] { 4, 3, 2, 1, 0 };
}
else
{
n残り打数[0] = (n連打ルマ / 5) * 4;
n残り打数[1] = (n連打ルマ / 5) * 3;
n残り打数[2] = (n連打ルマ / 5) * 2;
n残り打数[3] = (n連打ルマ / 5) * 1;
}
}
#endregion
if (n連打数 != 0)
{
int x;
int y;
int frame_x;
int frame_y;
int num_x;
int num_y;
if (TJAPlayer3.ConfigIni.nPlayerCount == 5)
{
x = TJAPlayer3.Skin.Game_Balloon_Balloon_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * player);
y = TJAPlayer3.Skin.Game_Balloon_Balloon_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * player);
frame_x = TJAPlayer3.Skin.Game_Balloon_Balloon_Frame_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * player);
frame_y = TJAPlayer3.Skin.Game_Balloon_Balloon_Frame_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * player);
num_x = TJAPlayer3.Skin.Game_Balloon_Balloon_Number_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * player);
num_y = TJAPlayer3.Skin.Game_Balloon_Balloon_Number_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * player);
}
else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3)
{
x = TJAPlayer3.Skin.Game_Balloon_Balloon_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * player);
y = TJAPlayer3.Skin.Game_Balloon_Balloon_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * player);
frame_x = TJAPlayer3.Skin.Game_Balloon_Balloon_Frame_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * player);
frame_y = TJAPlayer3.Skin.Game_Balloon_Balloon_Frame_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * player);
num_x = TJAPlayer3.Skin.Game_Balloon_Balloon_Number_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * player);
num_y = TJAPlayer3.Skin.Game_Balloon_Balloon_Number_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * player);
}
else
{
x = TJAPlayer3.Skin.Game_Balloon_Balloon_X[player];
y = TJAPlayer3.Skin.Game_Balloon_Balloon_Y[player];
frame_x = TJAPlayer3.Skin.Game_Balloon_Balloon_Frame_X[player];
frame_y = TJAPlayer3.Skin.Game_Balloon_Balloon_Frame_Y[player];
num_x = TJAPlayer3.Skin.Game_Balloon_Balloon_Number_X[player];
num_y = TJAPlayer3.Skin.Game_Balloon_Balloon_Number_Y[player];
}
//1P:0 2P:245
//if (CDTXMania.Tx.Chara_Balloon_Breaking != null && CDTXMania.ConfigIni.ShowChara)
// CDTXMania.Tx.Chara_Balloon_Breaking.t2D描画(CDTXMania.app.Device, CDTXMania.Skin.Game_Chara_Balloon_X[player], CDTXMania.Skin.Game_Chara_Balloon_Y[player]);
for (int j = 0; j < 5; j++)
{
if (n残り打数[j] < n連打数 && btype == EBalloonType.BALLOON)
{
if (TJAPlayer3.Tx.Balloon_Breaking[j] != null)
TJAPlayer3.Tx.Balloon_Breaking[j].t2D描画(x + (this.ct風船ふきだしアニメ.CurrentValue == 1 ? 3 : 0), y);
break;
}
}
//1P:31 2P:329
if (btype == EBalloonType.BALLOON)
{
if (TJAPlayer3.Tx.Balloon_Balloon != null)
TJAPlayer3.Tx.Balloon_Balloon.t2D描画(frame_x, frame_y);
this.t文字表示(num_x, num_y, n連打数, player);
}
else if (btype == EBalloonType.FUSEROLL)
{
if (TJAPlayer3.Tx.Fuse_Balloon != null)
TJAPlayer3.Tx.Fuse_Balloon.t2D描画(frame_x, frame_y);
this.tFuseNumber(num_x, num_y, n連打数, player);
}
else if (btype == EBalloonType.KUSUDAMA && player == 0)
{
/*
if (TJAPlayer3.Tx.Kusudama_Back != null)
TJAPlayer3.Tx.Kusudama_Back.t2D描画(0, 0);
if (TJAPlayer3.Tx.Kusudama != null)
TJAPlayer3.Tx.Kusudama.t2D描画(0, 0);
*/
this.tKusudamaNumber(n連打数);
}
//CDTXMania.act文字コンソール.tPrint( 0, 0, C文字コンソール.Eフォント種別.白, n連打数.ToString() );
}
if (btype == EBalloonType.KUSUDAMA)
{
/*
for(int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)
{
TJAPlayer3.stage演奏ドラム画面.actChara.b風船連打中[i] = false;
TJAPlayer3.stage演奏ドラム画面.b連打中[i] = false;
}
*/
}
else
{
if (n連打数 == 0 && TJAPlayer3.stage演奏ドラム画面.actChara.b風船連打中[player])
{
TJAPlayer3.stage演奏ドラム画面.actChara.b風船連打中[player] = false;
TJAPlayer3.stage演奏ドラム画面.b連打中[player] = false;
}
}
return base.Draw();
}
private KusudamaScript KusudamaScript;
private CCounter ct風船終了;
private CCounter ct風船ふきだしアニメ;
public CCounter[] ct風船アニメ;
private float[] RollScale = new float[]
{
0.000f,
0.123f, // リピート
0.164f,
0.164f,
0.164f,
0.137f,
0.110f,
0.082f,
0.055f,
0.000f
};
[StructLayout(LayoutKind.Sequential)]
private struct ST文字位置
{
public char ch;
public Point pt;
}
private void _nbDisplay(CTexture tx, int num, int x, int y)
{
int[] nums = CConversion.SeparateDigits(num);
for (int j = 0; j < nums.Length; j++)
{
float offset = j - (nums.Length / 2.0f);
float _x = x - (TJAPlayer3.Skin.Game_Balloon_Number_Interval[0] * offset);
float _y = y - (TJAPlayer3.Skin.Game_Balloon_Number_Interval[1] * offset);
float width = tx.sz画像サイズ.Width / 10.0f;
float height = tx.sz画像サイズ.Height;
tx.t2D拡大率考慮下基準描画(_x, _y, new RectangleF(width * nums[j], 0, width, height));
}
}
private void tKusudamaNumber(int num)
{
if (TJAPlayer3.Tx.Kusudama_Number == null) return;
TJAPlayer3.Tx.Kusudama_Number.vcScaleRatio.X = TJAPlayer3.Skin.Game_Balloon_Balloon_Number_Scale;
TJAPlayer3.Tx.Kusudama_Number.vcScaleRatio.Y = TJAPlayer3.Skin.Game_Balloon_Balloon_Number_Scale;
int x = TJAPlayer3.Skin.Game_Kusudama_Number_X;
int y = TJAPlayer3.Skin.Game_Kusudama_Number_Y;
int[] nums = CConversion.SeparateDigits(num);
for (int j = 0; j < nums.Length; j++)
{
float offset = j - ((nums.Length - 2) / 2.0f);
float width = TJAPlayer3.Tx.Kusudama_Number.sz画像サイズ.Width / 10.0f;
float height = TJAPlayer3.Tx.Kusudama_Number.sz画像サイズ.Height;
float _x = x - (width * offset);
float _y = y;
TJAPlayer3.Tx.Kusudama_Number.t2D拡大率考慮下基準描画(_x, _y, new RectangleF(width * nums[j], 0, width, height));
}
}
private void tFuseNumber(int x, int y, int num, int nPlayer)
{
if (TJAPlayer3.Tx.Fuse_Number == null) return;
TJAPlayer3.Tx.Fuse_Number.vcScaleRatio.X = TJAPlayer3.Skin.Game_Balloon_Balloon_Number_Scale;
TJAPlayer3.Tx.Fuse_Number.vcScaleRatio.Y = TJAPlayer3.Skin.Game_Balloon_Balloon_Number_Scale + RollScale[this.ct風船アニメ[nPlayer].CurrentValue];
_nbDisplay(TJAPlayer3.Tx.Fuse_Number, num, x, y);
}
private void t文字表示(int x, int y, int num, int nPlayer)
{
if (TJAPlayer3.Tx.Balloon_Number_Roll == null) return;
TJAPlayer3.Tx.Balloon_Number_Roll.vcScaleRatio.X = TJAPlayer3.Skin.Game_Balloon_Balloon_Number_Scale;
TJAPlayer3.Tx.Balloon_Number_Roll.vcScaleRatio.Y = TJAPlayer3.Skin.Game_Balloon_Balloon_Number_Scale + RollScale[this.ct風船アニメ[nPlayer].CurrentValue];
_nbDisplay(TJAPlayer3.Tx.Balloon_Number_Roll, num, x, y);
}
public void tEnd()
{
this.ct風船終了 = new CCounter(0, 80, 10, SoundManager.PlayTimer);
}
}
}

View File

@ -9,11 +9,11 @@ using Rectangle = System.Drawing.Rectangle;
namespace TJAPlayer3
{
internal class CAct演奏Drumsチップエフェクト : CActivity
internal class CActImplChipEffects : CActivity
{
// コンストラクタ
public CAct演奏Drumsチップエフェクト()
public CActImplChipEffects()
{
//base.b活性化してない = true;
}

View File

@ -0,0 +1,16 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace TJAPlayer3
{
internal class CActImplCombo : CAct演奏Combo共通
{
// CAct演奏Combo共通 実装
protected override void tコンボ表示_太鼓(int nCombo値, int nジャンプインデックス, int nPlayer)
{
base.tコンボ表示_太鼓( nCombo値, nジャンプインデックス, nPlayer );
}
}
}

View File

@ -7,7 +7,7 @@ using FDK;
namespace TJAPlayer3
{
internal class CAct演奏Drumsコンボ吹き出し : CActivity
internal class CActImplComboBalloon : CActivity
{
// コンストラクタ
@ -15,7 +15,7 @@ namespace TJAPlayer3
/// 100コンボごとに出る吹き出し。
/// 本当は「10000点」のところも動かしたいけど、技術不足だし保留。
/// </summary>
public CAct演奏Drumsコンボ吹き出し()
public CActImplComboBalloon()
{
for (int i = 0; i < 10; i++)
{

View File

@ -1,373 +1,373 @@
using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using System.Runtime.InteropServices;
using FDK;
using System.Diagnostics;
namespace TJAPlayer3
{
internal class CAct演奏DrumsDancer : CActivity
{
/// <summary>
/// 踊り子
/// </summary>
public CAct演奏DrumsDancer()
{
base.IsDeActivated = true;
}
public override void Activate()
{
//this.ct踊り子モーション = new CCounter();
if (TJAPlayer3.stageSongSelect.nChoosenSongDifficulty[0] == (int)Difficulty.Tower || TJAPlayer3.stageSongSelect.nChoosenSongDifficulty[0] == (int)Difficulty.Dan)
return;
var preset = HScenePreset.GetBGPreset();
Random random = new Random();
Dancer_In = new CTexture[5][];
Dancer_Out = new CTexture[5][];
Dancer = new CTexture[5][];
DancerStates = new int[5];
nNowDancerInCounter = new float[5];
nNowDancerOutCounter = new float[5];
var dancerOrigindir = CSkin.Path($"{TextureLoader.BASE}{TextureLoader.GAME}{TextureLoader.DANCER}");
if (System.IO.Directory.Exists($@"{dancerOrigindir}"))
{
var dirs = System.IO.Directory.GetDirectories($@"{dancerOrigindir}");
if (dirs.Length > 0)
{
var _presetPath = (preset != null && preset.DancerSet != null) ? $@"{dancerOrigindir}" + preset.DancerSet[random.Next(0, preset.DancerSet.Length)] : "";
var path = (preset != null && System.IO.Directory.Exists(_presetPath))
? _presetPath
: dirs[random.Next(0, dirs.Length)];
LoadDancerConifg(path);
Dancer_In = new CTexture[nDancerCount][];
Dancer_Out = new CTexture[nDancerCount][];
Dancer = new CTexture[nDancerCount][];
DancerStates = new int[nDancerCount];
nNowDancerInCounter = new float[nDancerCount];
nNowDancerOutCounter = new float[nDancerCount];
nDancerInPtn = TJAPlayer3.t連番画像の枚数を数える($@"{path}{Path.DirectorySeparatorChar}1_In{Path.DirectorySeparatorChar}");
if (nDancerInPtn != 0)
{
for (int i = 0; i < nDancerCount; i++)
{
Dancer_In[i] = new CTexture[nDancerInPtn];
for (int p = 0; p < nDancerInPtn; p++)
{
Dancer_In[i][p] = TJAPlayer3.tテクスチャの生成($@"{path}{Path.DirectorySeparatorChar}{(i + 1)}_In{Path.DirectorySeparatorChar}{p}.png");
}
}
}
nDancerOutPtn = TJAPlayer3.t連番画像の枚数を数える($@"{path}{Path.DirectorySeparatorChar}1_Out{Path.DirectorySeparatorChar}");
if (nDancerOutPtn != 0)
{
for (int i = 0; i < nDancerCount; i++)
{
Dancer_Out[i] = new CTexture[nDancerOutPtn];
for (int p = 0; p < nDancerOutPtn; p++)
{
Dancer_Out[i][p] = TJAPlayer3.tテクスチャの生成($@"{path}{Path.DirectorySeparatorChar}{(i + 1)}_Out{Path.DirectorySeparatorChar}{p}.png");
}
}
}
nDancerPtn = TJAPlayer3.t連番画像の枚数を数える($@"{path}{Path.DirectorySeparatorChar}1{Path.DirectorySeparatorChar}");
if (nDancerPtn != 0)
{
for (int i = 0; i < nDancerCount; i++)
{
Dancer[i] = new CTexture[nDancerPtn];
for (int p = 0; p < nDancerPtn; p++)
{
Dancer[i][p] = TJAPlayer3.tテクスチャの生成($@"{path}{Path.DirectorySeparatorChar}{(i + 1)}{Path.DirectorySeparatorChar}{p}.png");
}
}
}
}
}
arMotionArray_In = CConversion.StringToIntArray(Game_Dancer_In_Motion);
if(this.arMotionArray_In == null) arMotionArray_In = CConversion.StringToIntArray("0,0");
arMotionArray_Out = CConversion.StringToIntArray(Game_Dancer_Out_Motion);
if(this.arMotionArray_Out == null) arMotionArray_Out = CConversion.StringToIntArray("0,0");
this.ar踊り子モーション番号 = CConversion.StringToIntArray(TJAPlayer3.Skin.Game_Dancer_Motion);
if(this.ar踊り子モーション番号 == null) ar踊り子モーション番号 = CConversion.StringToIntArray("0,0");
nNowDancerCounter = 0;
nNowDancerFrame = 0;
base.Activate();
}
public override void DeActivate()
{
if (TJAPlayer3.stageSongSelect.nChoosenSongDifficulty[0] == (int)Difficulty.Tower || TJAPlayer3.stageSongSelect.nChoosenSongDifficulty[0] == (int)Difficulty.Dan)
return;
//this.ct踊り子モーション = null;
for (int i = 0; i < nDancerCount; i++)
{
TJAPlayer3.t安全にDisposeする(ref Dancer_In[i]);
TJAPlayer3.t安全にDisposeする(ref Dancer_Out[i]);
TJAPlayer3.t安全にDisposeする(ref Dancer[i]);
}
base.DeActivate();
}
public override void CreateManagedResource()
{
base.CreateManagedResource();
}
public override void ReleaseManagedResource()
{
base.ReleaseManagedResource();
}
public override int Draw()
{
if( this.IsFirstDraw )
{
this.IsFirstDraw = true;
}
if (TJAPlayer3.stageSongSelect.nChoosenSongDifficulty[0] != (int)Difficulty.Tower && TJAPlayer3.stageSongSelect.nChoosenSongDifficulty[0] != (int)Difficulty.Dan)
{
if (TJAPlayer3.ConfigIni.ShowDancer && (this.ar踊り子モーション番号.Length - 1) != 0)
{
if (!TJAPlayer3.stage演奏ドラム画面.bPAUSE) nNowDancerCounter += Math.Abs((float)TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM[0] / 60.0f) * (float)TJAPlayer3.FPS.DeltaTime / nDancerBeat;
if (nNowDancerCounter >= 1)
{
nNowDancerCounter = 0;
}
nNowDancerFrame = (int)(nNowDancerCounter * (this.ar踊り子モーション番号.Length - 1));
for (int i = 0; i < nDancerCount; i++)
{
if ((int)TJAPlayer3.stage演奏ドラム画面.actGauge.db現在のゲージ値[0] >= TJAPlayer3.Skin.Game_Dancer_Gauge[i])
{
if (DancerStates[i] == 0)
{
DancerStates[i] = 1;
nNowDancerInCounter[i] = 0;
}
}
else
{
if (DancerStates[i] == 3)
{
DancerStates[i] = 2;
nNowDancerOutCounter[i] = 0;
}
}
switch(DancerStates[i])
{
case 0:
break;
case 1:
{
if (nDancerInInterval == 0)
{
DancerStates[i] = 3;
}
else
{
if (!TJAPlayer3.stage演奏ドラム画面.bPAUSE) nNowDancerInCounter[i] += Math.Abs((float)TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM[0] / nDancerInInterval) * (float)TJAPlayer3.FPS.DeltaTime;
if (nNowDancerInCounter[i] >= 1)
{
nNowDancerInCounter[i] = 1;
DancerStates[i] = 3;
}
int frame = (int)(nNowDancerInCounter[i] * (this.arMotionArray_In.Length - 1));
if (this.Dancer_In[i] != null && this.Dancer_In[i].Length > 0 && this.Dancer_In[i][this.arMotionArray_In[frame]] != null)
{
this.Dancer_In[i][this.arMotionArray_In[frame]].t2D中心基準描画(TJAPlayer3.Skin.Game_Dancer_X[i], TJAPlayer3.Skin.Game_Dancer_Y[i]);
}
}
}
break;
case 2:
{
if (nDancerOutInterval == 0)
{
DancerStates[i] = 0;
}
else
{
if (!TJAPlayer3.stage演奏ドラム画面.bPAUSE) nNowDancerOutCounter[i] += Math.Abs((float)TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM[0] / nDancerOutInterval) * (float)TJAPlayer3.FPS.DeltaTime;
if (nNowDancerOutCounter[i] >= 1)
{
nNowDancerOutCounter[i] = 1;
DancerStates[i] = 0;
}
int frame = (int)(nNowDancerOutCounter[i] * (this.arMotionArray_Out.Length - 1));
if (this.Dancer_Out[i] != null && this.Dancer_Out[i].Length > 0 && this.Dancer_Out[i][this.arMotionArray_Out[frame]] != null)
{
this.Dancer_Out[i][this.arMotionArray_Out[frame]].t2D中心基準描画(TJAPlayer3.Skin.Game_Dancer_X[i], TJAPlayer3.Skin.Game_Dancer_Y[i]);
}
}
}
break;
case 3:
if (this.Dancer[i] != null && this.Dancer[i].Length > 0 && this.Dancer[i][this.ar踊り子モーション番号[nNowDancerFrame]] != null)
{
this.Dancer[i][this.ar踊り子モーション番号[nNowDancerFrame]].t2D中心基準描画(TJAPlayer3.Skin.Game_Dancer_X[i], TJAPlayer3.Skin.Game_Dancer_Y[i]);
}
break;
}
}
}
}
return base.Draw();
}
#region[ private ]
//-----------------
private int nDancerCount;
private float[] nNowDancerInCounter;
private float[] nNowDancerOutCounter;
private float nNowDancerCounter;
private int nNowDancerFrame;
private int nDancerInPtn;
private int nDancerOutPtn;
private int nDancerPtn;
private float nDancerBeat;
private float nDancerInInterval;
private float nDancerOutInterval;
private int[] arMotionArray_In;
private int[] arMotionArray_Out;
private int[] ar踊り子モーション番号;
//public CCounter ct踊り子モーション;
private CTexture[][] Dancer_In;
private CTexture[][] Dancer_Out;
private CTexture[][] Dancer;
private int[] DancerStates;
private string Game_Dancer_In_Motion;
private string Game_Dancer_Out_Motion;
private void LoadDancerConifg(string dancerPath)
{
var _str = "";
TJAPlayer3.Skin.LoadSkinConfigFromFile(dancerPath + @$"{Path.DirectorySeparatorChar}DancerConfig.txt", ref _str);
string[] delimiter = { "\n" };
string[] strSingleLine = _str.Split(delimiter, StringSplitOptions.RemoveEmptyEntries);
TJAPlayer3.Skin.Game_Dancer_X = new int[] { 640, 430, 856, 215, 1070 };
TJAPlayer3.Skin.Game_Dancer_Y = new int[] { 500, 500, 500, 500, 500 };
nDancerCount = 5;
nDancerInInterval = 0;
nDancerOutInterval = 0;
foreach (string s in strSingleLine)
{
string str = s.Replace('\t', ' ').TrimStart(new char[] { '\t', ' ' });
if ((str.Length != 0) && (str[0] != ';'))
{
try
{
string strCommand;
string strParam;
string[] strArray = str.Split(new char[] { '=' });
if (strArray.Length == 2)
{
strCommand = strArray[0].Trim();
strParam = strArray[1].Trim();
if (strCommand == "Game_Dancer_Count")
{
nDancerCount = int.Parse(strParam);
TJAPlayer3.Skin.Game_Dancer_X = new int[nDancerCount];
TJAPlayer3.Skin.Game_Dancer_Y = new int[nDancerCount];
}
else if (strCommand == "Game_Dancer_X")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < nDancerCount; i++)
{
TJAPlayer3.Skin.Game_Dancer_X[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Game_Dancer_Y")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < nDancerCount; i++)
{
TJAPlayer3.Skin.Game_Dancer_Y[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Game_Dancer_Motion")
{
TJAPlayer3.Skin.Game_Dancer_Motion = strParam;
}
else if (strCommand == "Game_Dancer_In_Motion")
{
Game_Dancer_In_Motion = strParam;
}
else if (strCommand == "Game_Dancer_Out_Motion")
{
Game_Dancer_Out_Motion = strParam;
}
else if (strCommand == "Game_Dancer_Beat")
{
nDancerBeat = int.Parse(strParam);
}
else if (strCommand == "Game_Dancer_In_Interval")
{
nDancerInInterval = int.Parse(strParam);
}
else if (strCommand == "Game_Dancer_Out_Interval")
{
nDancerOutInterval = int.Parse(strParam);
}
else if (strCommand == "Game_Dancer_Gauge")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < nDancerCount; i++)
{
TJAPlayer3.Skin.Game_Dancer_Gauge[i] = int.Parse(strSplit[i]);
}
}
}
continue;
}
catch (Exception exception)
{
Trace.TraceError(exception.ToString());
Trace.TraceError("例外が発生しましたが処理を継続します。 (6a32cc37-1527-412e-968a-512c1f0135cd)");
continue;
}
}
}
}
//-----------------
#endregion
}
}
using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using System.Runtime.InteropServices;
using FDK;
using System.Diagnostics;
namespace TJAPlayer3
{
internal class CActImplDancer : CActivity
{
/// <summary>
/// 踊り子
/// </summary>
public CActImplDancer()
{
base.IsDeActivated = true;
}
public override void Activate()
{
//this.ct踊り子モーション = new CCounter();
if (TJAPlayer3.stageSongSelect.nChoosenSongDifficulty[0] == (int)Difficulty.Tower || TJAPlayer3.stageSongSelect.nChoosenSongDifficulty[0] == (int)Difficulty.Dan)
return;
var preset = HScenePreset.GetBGPreset();
Random random = new Random();
Dancer_In = new CTexture[5][];
Dancer_Out = new CTexture[5][];
Dancer = new CTexture[5][];
DancerStates = new int[5];
nNowDancerInCounter = new float[5];
nNowDancerOutCounter = new float[5];
var dancerOrigindir = CSkin.Path($"{TextureLoader.BASE}{TextureLoader.GAME}{TextureLoader.DANCER}");
if (System.IO.Directory.Exists($@"{dancerOrigindir}"))
{
var dirs = System.IO.Directory.GetDirectories($@"{dancerOrigindir}");
if (dirs.Length > 0)
{
var _presetPath = (preset != null && preset.DancerSet != null) ? $@"{dancerOrigindir}" + preset.DancerSet[random.Next(0, preset.DancerSet.Length)] : "";
var path = (preset != null && System.IO.Directory.Exists(_presetPath))
? _presetPath
: dirs[random.Next(0, dirs.Length)];
LoadDancerConifg(path);
Dancer_In = new CTexture[nDancerCount][];
Dancer_Out = new CTexture[nDancerCount][];
Dancer = new CTexture[nDancerCount][];
DancerStates = new int[nDancerCount];
nNowDancerInCounter = new float[nDancerCount];
nNowDancerOutCounter = new float[nDancerCount];
nDancerInPtn = TJAPlayer3.t連番画像の枚数を数える($@"{path}{Path.DirectorySeparatorChar}1_In{Path.DirectorySeparatorChar}");
if (nDancerInPtn != 0)
{
for (int i = 0; i < nDancerCount; i++)
{
Dancer_In[i] = new CTexture[nDancerInPtn];
for (int p = 0; p < nDancerInPtn; p++)
{
Dancer_In[i][p] = TJAPlayer3.tテクスチャの生成($@"{path}{Path.DirectorySeparatorChar}{(i + 1)}_In{Path.DirectorySeparatorChar}{p}.png");
}
}
}
nDancerOutPtn = TJAPlayer3.t連番画像の枚数を数える($@"{path}{Path.DirectorySeparatorChar}1_Out{Path.DirectorySeparatorChar}");
if (nDancerOutPtn != 0)
{
for (int i = 0; i < nDancerCount; i++)
{
Dancer_Out[i] = new CTexture[nDancerOutPtn];
for (int p = 0; p < nDancerOutPtn; p++)
{
Dancer_Out[i][p] = TJAPlayer3.tテクスチャの生成($@"{path}{Path.DirectorySeparatorChar}{(i + 1)}_Out{Path.DirectorySeparatorChar}{p}.png");
}
}
}
nDancerPtn = TJAPlayer3.t連番画像の枚数を数える($@"{path}{Path.DirectorySeparatorChar}1{Path.DirectorySeparatorChar}");
if (nDancerPtn != 0)
{
for (int i = 0; i < nDancerCount; i++)
{
Dancer[i] = new CTexture[nDancerPtn];
for (int p = 0; p < nDancerPtn; p++)
{
Dancer[i][p] = TJAPlayer3.tテクスチャの生成($@"{path}{Path.DirectorySeparatorChar}{(i + 1)}{Path.DirectorySeparatorChar}{p}.png");
}
}
}
}
}
arMotionArray_In = CConversion.StringToIntArray(Game_Dancer_In_Motion);
if(this.arMotionArray_In == null) arMotionArray_In = CConversion.StringToIntArray("0,0");
arMotionArray_Out = CConversion.StringToIntArray(Game_Dancer_Out_Motion);
if(this.arMotionArray_Out == null) arMotionArray_Out = CConversion.StringToIntArray("0,0");
this.ar踊り子モーション番号 = CConversion.StringToIntArray(TJAPlayer3.Skin.Game_Dancer_Motion);
if(this.ar踊り子モーション番号 == null) ar踊り子モーション番号 = CConversion.StringToIntArray("0,0");
nNowDancerCounter = 0;
nNowDancerFrame = 0;
base.Activate();
}
public override void DeActivate()
{
if (TJAPlayer3.stageSongSelect.nChoosenSongDifficulty[0] == (int)Difficulty.Tower || TJAPlayer3.stageSongSelect.nChoosenSongDifficulty[0] == (int)Difficulty.Dan)
return;
//this.ct踊り子モーション = null;
for (int i = 0; i < nDancerCount; i++)
{
TJAPlayer3.t安全にDisposeする(ref Dancer_In[i]);
TJAPlayer3.t安全にDisposeする(ref Dancer_Out[i]);
TJAPlayer3.t安全にDisposeする(ref Dancer[i]);
}
base.DeActivate();
}
public override void CreateManagedResource()
{
base.CreateManagedResource();
}
public override void ReleaseManagedResource()
{
base.ReleaseManagedResource();
}
public override int Draw()
{
if( this.IsFirstDraw )
{
this.IsFirstDraw = true;
}
if (TJAPlayer3.stageSongSelect.nChoosenSongDifficulty[0] != (int)Difficulty.Tower && TJAPlayer3.stageSongSelect.nChoosenSongDifficulty[0] != (int)Difficulty.Dan)
{
if (TJAPlayer3.ConfigIni.ShowDancer && (this.ar踊り子モーション番号.Length - 1) != 0)
{
if (!TJAPlayer3.stage演奏ドラム画面.bPAUSE) nNowDancerCounter += Math.Abs((float)TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM[0] / 60.0f) * (float)TJAPlayer3.FPS.DeltaTime / nDancerBeat;
if (nNowDancerCounter >= 1)
{
nNowDancerCounter = 0;
}
nNowDancerFrame = (int)(nNowDancerCounter * (this.ar踊り子モーション番号.Length - 1));
for (int i = 0; i < nDancerCount; i++)
{
if ((int)TJAPlayer3.stage演奏ドラム画面.actGauge.db現在のゲージ値[0] >= TJAPlayer3.Skin.Game_Dancer_Gauge[i])
{
if (DancerStates[i] == 0)
{
DancerStates[i] = 1;
nNowDancerInCounter[i] = 0;
}
}
else
{
if (DancerStates[i] == 3)
{
DancerStates[i] = 2;
nNowDancerOutCounter[i] = 0;
}
}
switch(DancerStates[i])
{
case 0:
break;
case 1:
{
if (nDancerInInterval == 0)
{
DancerStates[i] = 3;
}
else
{
if (!TJAPlayer3.stage演奏ドラム画面.bPAUSE) nNowDancerInCounter[i] += Math.Abs((float)TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM[0] / nDancerInInterval) * (float)TJAPlayer3.FPS.DeltaTime;
if (nNowDancerInCounter[i] >= 1)
{
nNowDancerInCounter[i] = 1;
DancerStates[i] = 3;
}
int frame = (int)(nNowDancerInCounter[i] * (this.arMotionArray_In.Length - 1));
if (this.Dancer_In[i] != null && this.Dancer_In[i].Length > 0 && this.Dancer_In[i][this.arMotionArray_In[frame]] != null)
{
this.Dancer_In[i][this.arMotionArray_In[frame]].t2D中心基準描画(TJAPlayer3.Skin.Game_Dancer_X[i], TJAPlayer3.Skin.Game_Dancer_Y[i]);
}
}
}
break;
case 2:
{
if (nDancerOutInterval == 0)
{
DancerStates[i] = 0;
}
else
{
if (!TJAPlayer3.stage演奏ドラム画面.bPAUSE) nNowDancerOutCounter[i] += Math.Abs((float)TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM[0] / nDancerOutInterval) * (float)TJAPlayer3.FPS.DeltaTime;
if (nNowDancerOutCounter[i] >= 1)
{
nNowDancerOutCounter[i] = 1;
DancerStates[i] = 0;
}
int frame = (int)(nNowDancerOutCounter[i] * (this.arMotionArray_Out.Length - 1));
if (this.Dancer_Out[i] != null && this.Dancer_Out[i].Length > 0 && this.Dancer_Out[i][this.arMotionArray_Out[frame]] != null)
{
this.Dancer_Out[i][this.arMotionArray_Out[frame]].t2D中心基準描画(TJAPlayer3.Skin.Game_Dancer_X[i], TJAPlayer3.Skin.Game_Dancer_Y[i]);
}
}
}
break;
case 3:
if (this.Dancer[i] != null && this.Dancer[i].Length > 0 && this.Dancer[i][this.ar踊り子モーション番号[nNowDancerFrame]] != null)
{
this.Dancer[i][this.ar踊り子モーション番号[nNowDancerFrame]].t2D中心基準描画(TJAPlayer3.Skin.Game_Dancer_X[i], TJAPlayer3.Skin.Game_Dancer_Y[i]);
}
break;
}
}
}
}
return base.Draw();
}
#region[ private ]
//-----------------
private int nDancerCount;
private float[] nNowDancerInCounter;
private float[] nNowDancerOutCounter;
private float nNowDancerCounter;
private int nNowDancerFrame;
private int nDancerInPtn;
private int nDancerOutPtn;
private int nDancerPtn;
private float nDancerBeat;
private float nDancerInInterval;
private float nDancerOutInterval;
private int[] arMotionArray_In;
private int[] arMotionArray_Out;
private int[] ar踊り子モーション番号;
//public CCounter ct踊り子モーション;
private CTexture[][] Dancer_In;
private CTexture[][] Dancer_Out;
private CTexture[][] Dancer;
private int[] DancerStates;
private string Game_Dancer_In_Motion;
private string Game_Dancer_Out_Motion;
private void LoadDancerConifg(string dancerPath)
{
var _str = "";
TJAPlayer3.Skin.LoadSkinConfigFromFile(dancerPath + @$"{Path.DirectorySeparatorChar}DancerConfig.txt", ref _str);
string[] delimiter = { "\n" };
string[] strSingleLine = _str.Split(delimiter, StringSplitOptions.RemoveEmptyEntries);
TJAPlayer3.Skin.Game_Dancer_X = new int[] { 640, 430, 856, 215, 1070 };
TJAPlayer3.Skin.Game_Dancer_Y = new int[] { 500, 500, 500, 500, 500 };
nDancerCount = 5;
nDancerInInterval = 0;
nDancerOutInterval = 0;
foreach (string s in strSingleLine)
{
string str = s.Replace('\t', ' ').TrimStart(new char[] { '\t', ' ' });
if ((str.Length != 0) && (str[0] != ';'))
{
try
{
string strCommand;
string strParam;
string[] strArray = str.Split(new char[] { '=' });
if (strArray.Length == 2)
{
strCommand = strArray[0].Trim();
strParam = strArray[1].Trim();
if (strCommand == "Game_Dancer_Count")
{
nDancerCount = int.Parse(strParam);
TJAPlayer3.Skin.Game_Dancer_X = new int[nDancerCount];
TJAPlayer3.Skin.Game_Dancer_Y = new int[nDancerCount];
}
else if (strCommand == "Game_Dancer_X")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < nDancerCount; i++)
{
TJAPlayer3.Skin.Game_Dancer_X[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Game_Dancer_Y")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < nDancerCount; i++)
{
TJAPlayer3.Skin.Game_Dancer_Y[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Game_Dancer_Motion")
{
TJAPlayer3.Skin.Game_Dancer_Motion = strParam;
}
else if (strCommand == "Game_Dancer_In_Motion")
{
Game_Dancer_In_Motion = strParam;
}
else if (strCommand == "Game_Dancer_Out_Motion")
{
Game_Dancer_Out_Motion = strParam;
}
else if (strCommand == "Game_Dancer_Beat")
{
nDancerBeat = int.Parse(strParam);
}
else if (strCommand == "Game_Dancer_In_Interval")
{
nDancerInInterval = int.Parse(strParam);
}
else if (strCommand == "Game_Dancer_Out_Interval")
{
nDancerOutInterval = int.Parse(strParam);
}
else if (strCommand == "Game_Dancer_Gauge")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < nDancerCount; i++)
{
TJAPlayer3.Skin.Game_Dancer_Gauge[i] = int.Parse(strSplit[i]);
}
}
}
continue;
}
catch (Exception exception)
{
Trace.TraceError(exception.ToString());
Trace.TraceError("例外が発生しましたが処理を継続します。 (6a32cc37-1527-412e-968a-512c1f0135cd)");
continue;
}
}
}
}
//-----------------
#endregion
}
}

View File

@ -1,76 +1,76 @@
using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using System.Runtime.InteropServices;
using FDK;
namespace TJAPlayer3
{
internal class CAct演奏DrumsFooter : CActivity
{
/// <summary>
/// フッター
/// </summary>
public CAct演奏DrumsFooter()
{
base.IsDeActivated = true;
}
public override void Activate()
{
var footerDir = CSkin.Path($"{TextureLoader.BASE}{TextureLoader.GAME}{TextureLoader.FOOTER}");
var preset = HScenePreset.GetBGPreset();
if (System.IO.Directory.Exists(footerDir))
{
Random random = new Random();
var upDirs = System.IO.Directory.GetFiles(footerDir);
if (upDirs.Length > 0)
{
var _presetPath = (preset != null && preset.FooterSet != null) ? $@"{footerDir}" + preset.FooterSet[random.Next(0, preset.FooterSet.Length)] + ".png" : "";
var path = (preset != null && System.IO.File.Exists(_presetPath))
? _presetPath
: upDirs[random.Next(0, upDirs.Length)];
Mob_Footer = TJAPlayer3.tテクスチャの生成(path);
}
}
base.Activate();
}
public override void DeActivate()
{
TJAPlayer3.tDisposeSafely(ref Mob_Footer);
base.DeActivate();
}
public override void CreateManagedResource()
{
base.CreateManagedResource();
}
public override void ReleaseManagedResource()
{
base.ReleaseManagedResource();
}
public override int Draw()
{
if (this.Mob_Footer != null)
{
this.Mob_Footer.t2D描画(0, TJAPlayer3.Skin.Resolution[1] - this.Mob_Footer.szTextureSize.Height);
}
return base.Draw();
}
#region[ private ]
//-----------------
public CTexture Mob_Footer;
//-----------------
#endregion
}
}
using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using System.Runtime.InteropServices;
using FDK;
namespace TJAPlayer3
{
internal class CActImplFooter : CActivity
{
/// <summary>
/// フッター
/// </summary>
public CActImplFooter()
{
base.IsDeActivated = true;
}
public override void Activate()
{
var footerDir = CSkin.Path($"{TextureLoader.BASE}{TextureLoader.GAME}{TextureLoader.FOOTER}");
var preset = HScenePreset.GetBGPreset();
if (System.IO.Directory.Exists(footerDir))
{
Random random = new Random();
var upDirs = System.IO.Directory.GetFiles(footerDir);
if (upDirs.Length > 0)
{
var _presetPath = (preset != null && preset.FooterSet != null) ? $@"{footerDir}" + preset.FooterSet[random.Next(0, preset.FooterSet.Length)] + ".png" : "";
var path = (preset != null && System.IO.File.Exists(_presetPath))
? _presetPath
: upDirs[random.Next(0, upDirs.Length)];
Mob_Footer = TJAPlayer3.tテクスチャの生成(path);
}
}
base.Activate();
}
public override void DeActivate()
{
TJAPlayer3.tDisposeSafely(ref Mob_Footer);
base.DeActivate();
}
public override void CreateManagedResource()
{
base.CreateManagedResource();
}
public override void ReleaseManagedResource()
{
base.ReleaseManagedResource();
}
public override int Draw()
{
if (this.Mob_Footer != null)
{
this.Mob_Footer.t2D描画(0, TJAPlayer3.Skin.Resolution[1] - this.Mob_Footer.szTextureSize.Height);
}
return base.Draw();
}
#region[ private ]
//-----------------
public CTexture Mob_Footer;
//-----------------
#endregion
}
}

View File

@ -8,7 +8,7 @@ using FDK;
namespace TJAPlayer3
{
internal class CAct演奏Drumsゲージ : CAct演奏ゲージ共通
internal class CActImplGauge : CAct演奏ゲージ共通
{
// プロパティ
@ -38,7 +38,7 @@ namespace TJAPlayer3
/// _Danger時にゲージの色が変わる演出の実装。
/// _Danger、MAX時のアニメーション実装。
/// </summary>
public CAct演奏Drumsゲージ()
public CActImplGauge()
{
base.IsDeActivated = true;
}

View File

@ -8,11 +8,11 @@ using System.Drawing;
namespace TJAPlayer3
{
internal class CAct演奏Drums判定文字列 : CActivity
internal class CActImplJudgeText : CActivity
{
// コンストラクタ
public CAct演奏Drums判定文字列()
public CActImplJudgeText()
{
base.IsDeActivated = true;
}
@ -102,13 +102,13 @@ namespace TJAPlayer3
if (JudgesDict.ContainsKey(judge))
{
njudge = JudgesDict[judge];
}
if (njudge == 0 && TJAPlayer3.ConfigIni.SimpleMode)
{
return;
}
}
if (njudge == 0 && TJAPlayer3.ConfigIni.SimpleMode)
{
return;
}
int height = TJAPlayer3.Tx.Judge.szTextureSize.Height / 5;
judgeAnime.rc = new Rectangle(0, (int)njudge * height, TJAPlayer3.Tx.Judge.szTextureSize.Width, height);

View File

@ -6,9 +6,9 @@ using FDK;
namespace TJAPlayer3
{
internal class CAct演奏Drumsレーン : CActivity
internal class CActImplLane : CActivity
{
public CAct演奏Drumsレーン()
public CActImplLane()
{
base.IsDeActivated = true;
}
@ -103,13 +103,13 @@ namespace TJAPlayer3
_laneNull = true;
break;
}
}
}
#endregion
if (TJAPlayer3.ConfigIni.SimpleMode)
{
TJAPlayer3.Tx.Lane_Base[(int)nAfter[i]].t2D描画(x[i], y[i]);
if (TJAPlayer3.ConfigIni.SimpleMode)
{
TJAPlayer3.Tx.Lane_Base[(int)nAfter[i]].t2D描画(x[i], y[i]);
}
else if( this.ct分岐アニメ進行[ i ].IsTicked && !_laneNull)
{

View File

@ -7,12 +7,12 @@ using FDK;
namespace TJAPlayer3
{
internal class CAct演奏DrumsMob : CActivity
internal class CActImplMob : CActivity
{
/// <summary>
/// 踊り子
/// </summary>
public CAct演奏DrumsMob()
public CActImplMob()
{
base.IsDeActivated = true;
}

View File

@ -9,13 +9,13 @@ using Rectangle = System.Drawing.Rectangle;
namespace TJAPlayer3
{
internal class CAct演奏DrumsMtaiko : CActivity
internal class CActImplMtaiko : CActivity
{
/// <summary>
/// mtaiko部分を描画するクラス。左側だけ。
///
/// </summary>
public CAct演奏DrumsMtaiko()
public CActImplMtaiko()
{
base.IsDeActivated = true;
}
@ -210,16 +210,16 @@ namespace TJAPlayer3
}
*/
int getMTaikoOpacity(int brightness)
{
if (TJAPlayer3.ConfigIni.SimpleMode)
{
return brightness <= 0 ? 0 : 255;
}
else
{
return brightness * 73;
}
int getMTaikoOpacity(int brightness)
{
if (TJAPlayer3.ConfigIni.SimpleMode)
{
return brightness <= 0 ? 0 : 255;
}
else
{
return brightness * 73;
}
}
for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)

View File

@ -7,85 +7,12 @@ using FDK;
namespace TJAPlayer3
{
internal class CAct演奏Drumsパッド : CActivity
internal class CActImplPad : CActivity
{
// コンストラクタ
public CAct演奏Drumsパッド()
public CActImplPad()
{
ST基本位置[] st基本位置Array = new ST基本位置[ 10 ];
//LC
ST基本位置 st基本位置 = new ST基本位置();
st基本位置.x = 263;
st基本位置.y = 10;
st基本位置.rc = new Rectangle( 0, 0, 0x60, 0x60 );
st基本位置Array[ 0 ] = st基本位置;
//HH
ST基本位置 st基本位置2 = new ST基本位置();
st基本位置2.x = 336;
st基本位置2.y = 10;
st基本位置2.rc = new Rectangle( 0x60, 0, 0x60, 0x60 );
st基本位置Array[ 1 ] = st基本位置2;
//SD
ST基本位置 st基本位置3 = new ST基本位置();
st基本位置3.x = 446;
st基本位置3.y = 10;
st基本位置3.rc = new Rectangle( 0, 0x60, 0x60, 0x60 );
st基本位置Array[ 2 ] = st基本位置3;
//BD
ST基本位置 st基本位置4 = new ST基本位置();
st基本位置4.x = 565;
st基本位置4.y = 10;
st基本位置4.rc = new Rectangle( 0, 0xc0, 0x60, 0x60);
st基本位置Array[ 3 ] = st基本位置4;
//HT
ST基本位置 st基本位置5 = new ST基本位置();
st基本位置5.x = 510;
st基本位置5.y = 10;
st基本位置5.rc = new Rectangle( 0x60, 0x60, 0x60, 0x60 );
st基本位置Array[ 4 ] = st基本位置5;
//LT
ST基本位置 st基本位置6 = new ST基本位置();
st基本位置6.x = 622;
st基本位置6.y = 10;
st基本位置6.rc = new Rectangle( 0xc0, 0x60, 0x60, 0x60 );
st基本位置Array[ 5 ] = st基本位置6;
//FT
ST基本位置 st基本位置7 = new ST基本位置();
st基本位置7.x = 672;
st基本位置7.y = 10;
st基本位置7.rc = new Rectangle( 288, 0x60, 0x60, 0x60 );
st基本位置Array[ 6 ] = st基本位置7;
//CY
ST基本位置 st基本位置8 = new ST基本位置();
st基本位置8.x = 0x2df;
st基本位置8.y = 10;
st基本位置8.rc = new Rectangle( 0xc0, 0, 0x60, 0x60 );
st基本位置Array[ 7 ] = st基本位置8;
//RD
ST基本位置 st基本位置9 = new ST基本位置();
st基本位置9.x = 0x317;
st基本位置9.y = 10;
st基本位置9.rc = new Rectangle( 288, 0, 0x60, 0x60 );
st基本位置Array[ 8 ] = st基本位置9;
//LP
ST基本位置 st基本位置10 = new ST基本位置();
st基本位置10.x = 0x18c;
st基本位置10.y = 10;
st基本位置10.rc = new Rectangle( 0x60, 0xc0, 0x60, 0x60);
st基本位置Array[ 9 ] = st基本位置10;
this.st基本位置 = st基本位置Array;
base.IsDeActivated = true;
}
@ -191,20 +118,10 @@ namespace TJAPlayer3
public int nY座標オフセットdot;
public int nY座標加速度dot;
}
[StructLayout( LayoutKind.Sequential )]
private struct ST基本位置
{
public int x;
public int y;
public Rectangle rc;
}
private long nY座標制御タイマ;
private long nフラッシュ制御タイマ;
private readonly int[] n描画順 = new int[] { 9, 3, 2, 6, 5, 4, 8, 7, 1, 0 };
// LP BD SD FT HT LT RD CY HH LC
private STパッド状態[] stパッド状態 = new STパッド状態[ 10 ];
private readonly ST基本位置[] st基本位置;
//-----------------
#endregion
}

View File

@ -1,229 +1,181 @@
using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using System.Diagnostics;
using System.Runtime.InteropServices;
using FDK;
namespace TJAPlayer3
{
internal class CAct演奏Drums連打 : CActivity
{
public CAct演奏Drums連打()
{
ST文字位置[] st文字位置Array = new ST文字位置[ 11 ];
ST文字位置 st文字位置 = new ST文字位置();
st文字位置.ch = '0';
st文字位置.pt = new Point( 0, 0 );
st文字位置Array[ 0 ] = st文字位置;
ST文字位置 st文字位置2 = new ST文字位置();
st文字位置2.ch = '1';
st文字位置2.pt = new Point( 62, 0 );
st文字位置Array[ 1 ] = st文字位置2;
ST文字位置 st文字位置3 = new ST文字位置();
st文字位置3.ch = '2';
st文字位置3.pt = new Point( 124, 0 );
st文字位置Array[ 2 ] = st文字位置3;
ST文字位置 st文字位置4 = new ST文字位置();
st文字位置4.ch = '3';
st文字位置4.pt = new Point( 186, 0 );
st文字位置Array[ 3 ] = st文字位置4;
ST文字位置 st文字位置5 = new ST文字位置();
st文字位置5.ch = '4';
st文字位置5.pt = new Point( 248, 0 );
st文字位置Array[ 4 ] = st文字位置5;
ST文字位置 st文字位置6 = new ST文字位置();
st文字位置6.ch = '5';
st文字位置6.pt = new Point( 310, 0 );
st文字位置Array[ 5 ] = st文字位置6;
ST文字位置 st文字位置7 = new ST文字位置();
st文字位置7.ch = '6';
st文字位置7.pt = new Point( 372, 0 );
st文字位置Array[ 6 ] = st文字位置7;
ST文字位置 st文字位置8 = new ST文字位置();
st文字位置8.ch = '7';
st文字位置8.pt = new Point( 434, 0 );
st文字位置Array[ 7 ] = st文字位置8;
ST文字位置 st文字位置9 = new ST文字位置();
st文字位置9.ch = '8';
st文字位置9.pt = new Point( 496, 0 );
st文字位置Array[ 8 ] = st文字位置9;
ST文字位置 st文字位置10 = new ST文字位置();
st文字位置10.ch = '9';
st文字位置10.pt = new Point( 558, 0 );
st文字位置Array[ 9 ] = st文字位置10;
this.st文字位置 = st文字位置Array;
base.IsDeActivated = true;
}
public override void Activate()
{
this.ct連打枠カウンター = new CCounter[ 5 ];
this.ct連打アニメ = new CCounter[5];
FadeOut = new Animations.FadeOut[5];
for ( int i = 0; i < 5; i++ )
{
this.ct連打枠カウンター[ i ] = new CCounter();
this.ct連打アニメ[i] = new CCounter();
// 後から変えれるようにする。大体10フレーム分。
FadeOut[i] = new Animations.FadeOut(167);
}
this.b表示 = new bool[]{ false, false, false, false, false };
this.n連打数 = new int[ 5 ];
base.Activate();
}
public override void DeActivate()
{
for (int i = 0; i < 5; i++)
{
ct連打枠カウンター[i] = null;
ct連打アニメ[i] = null;
FadeOut[i] = null;
}
base.DeActivate();
}
public override void CreateManagedResource()
{
base.CreateManagedResource();
}
public override void ReleaseManagedResource()
{
base.ReleaseManagedResource();
}
public override int Draw( )
{
return base.Draw();
}
public int On進行描画( int n連打数, int player )
{
if (TJAPlayer3.ConfigIni.nPlayerCount > 2) return base.Draw();
this.ct連打枠カウンター[ player ].Tick();
this.ct連打アニメ[player].Tick();
FadeOut[player].Tick();
//1PY:-3 2PY:514
//仮置き
int[] nRollBalloon = new int[] { -3, 514, 0, 0 };
int[] nRollNumber = new int[] { 48, 559, 0, 0 };
for( int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++ )
{
//CDTXMania.act文字コンソール.tPrint(0, 0, C文字コンソール.Eフォント種別.白, this.ct連打枠カウンター[player].n現在の値.ToString());
if ( this.ct連打枠カウンター[ player ].IsUnEnded)
{
if (ct連打枠カウンター[player].CurrentValue > 66 && !FadeOut[player].Counter.IsTicked)
{
FadeOut[player].Start();
}
var opacity = (int)FadeOut[player].GetAnimation();
if(ct連打枠カウンター[player].CurrentValue == 0 || ct連打枠カウンター[player].CurrentValue == 60)
{
bNowRollAnime = 0;
TJAPlayer3.Tx.Balloon_Number_Roll.Opacity = 64;
}
else if (ct連打枠カウンター[player].CurrentValue == 1 || ct連打枠カウンター[player].CurrentValue == 59)
{
bNowRollAnime = 1;
TJAPlayer3.Tx.Balloon_Number_Roll.Opacity = 128;
}
else if (ct連打枠カウンター[player].CurrentValue == 2 || ct連打枠カウンター[player].CurrentValue == 58)
{
bNowRollAnime = 2;
TJAPlayer3.Tx.Balloon_Number_Roll.Opacity = 192;
}
else if (ct連打枠カウンター[player].CurrentValue == 3 || ct連打枠カウンター[player].CurrentValue == 57)
{
bNowRollAnime = 3;
TJAPlayer3.Tx.Balloon_Number_Roll.Opacity = 255;
}
else if (ct連打枠カウンター[player].CurrentValue >= 4 || ct連打枠カウンター[player].CurrentValue <= 56)
{
bNowRollAnime = 4;
TJAPlayer3.Tx.Balloon_Number_Roll.Opacity = 255;
}
float width = TJAPlayer3.Tx.Balloon_Roll.szTextureSize.Width / 5.0f;
float height = TJAPlayer3.Tx.Balloon_Roll.szTextureSize.Height;
TJAPlayer3.Tx.Balloon_Roll?.t2D描画(TJAPlayer3.Skin.Game_Balloon_Roll_Frame_X[player], TJAPlayer3.Skin.Game_Balloon_Roll_Frame_Y[player], new RectangleF(0 + bNowRollAnime * width, 0, width, height));
this.t文字表示(TJAPlayer3.Skin.Game_Balloon_Roll_Number_X[player], TJAPlayer3.Skin.Game_Balloon_Roll_Number_Y[player], n連打数, player);
}
}
return base.Draw();
}
public void t枠表示時間延長(int player, bool first)
{
if ((this.ct連打枠カウンター[player].CurrentValue >= 6 && !first) || first)
this.ct連打枠カウンター[player] = new CCounter(0, 60, 40, TJAPlayer3.Timer);
if(!first)
this.ct連打枠カウンター[player].CurrentValue = 5;
else
this.ct連打枠カウンター[player].CurrentValue = 0;
}
public int bNowRollAnime;
public bool[] b表示;
public int[] n連打数;
public CCounter[] ct連打枠カウンター;
//private CTexture tx連打枠;
//private CTexture tx連打数字;
private readonly ST文字位置[] st文字位置;
public CCounter[] ct連打アニメ;
private float[] RollScale = new float[]
{
0.000f,
0.123f, // リピート
0.164f,
0.164f,
0.164f,
0.137f,
0.110f,
0.082f,
0.055f,
0.000f
};
private Animations.FadeOut[] FadeOut;
[StructLayout(LayoutKind.Sequential)]
private struct ST文字位置
{
public char ch;
public Point pt;
}
private void t文字表示( int x, int y, int num, int nPlayer)
{
TJAPlayer3.Tx.Balloon_Number_Roll.vcScaleRatio.X = TJAPlayer3.Skin.Game_Balloon_Roll_Number_Scale;
TJAPlayer3.Tx.Balloon_Number_Roll.vcScaleRatio.Y = TJAPlayer3.Skin.Game_Balloon_Roll_Number_Scale + RollScale[this.ct連打アニメ[nPlayer].CurrentValue];
int[] nums = CConversion.SeparateDigits(num);
for (int j = 0; j < nums.Length; j++)
{
float offset = j - (nums.Length / 2.0f);
float _x = x - (TJAPlayer3.Skin.Game_Balloon_Number_Interval[0] * offset);
float _y = y - (TJAPlayer3.Skin.Game_Balloon_Number_Interval[1] * offset);
float width = TJAPlayer3.Tx.Balloon_Number_Roll.sz画像サイズ.Width / 10.0f;
float height = TJAPlayer3.Tx.Balloon_Number_Roll.sz画像サイズ.Height;
TJAPlayer3.Tx.Balloon_Number_Roll.t2D拡大率考慮下基準描画(_x, _y, new RectangleF(width * nums[j], 0, width, height));
}
}
}
}
using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using System.Diagnostics;
using System.Runtime.InteropServices;
using FDK;
namespace TJAPlayer3
{
internal class CActImplRoll : CActivity
{
public CActImplRoll()
{
base.IsDeActivated = true;
}
public override void Activate()
{
this.ct連打枠カウンター = new CCounter[ 5 ];
this.ct連打アニメ = new CCounter[5];
FadeOut = new Animations.FadeOut[5];
for ( int i = 0; i < 5; i++ )
{
this.ct連打枠カウンター[ i ] = new CCounter();
this.ct連打アニメ[i] = new CCounter();
// 後から変えれるようにする。大体10フレーム分。
FadeOut[i] = new Animations.FadeOut(167);
}
this.b表示 = new bool[]{ false, false, false, false, false };
this.n連打数 = new int[ 5 ];
base.Activate();
}
public override void DeActivate()
{
for (int i = 0; i < 5; i++)
{
ct連打枠カウンター[i] = null;
ct連打アニメ[i] = null;
FadeOut[i] = null;
}
base.DeActivate();
}
public override void CreateManagedResource()
{
base.CreateManagedResource();
}
public override void ReleaseManagedResource()
{
base.ReleaseManagedResource();
}
public override int Draw( )
{
return base.Draw();
}
public int On進行描画( int n連打数, int player )
{
if (TJAPlayer3.ConfigIni.nPlayerCount > 2) return base.Draw();
this.ct連打枠カウンター[ player ].Tick();
this.ct連打アニメ[player].Tick();
FadeOut[player].Tick();
//1PY:-3 2PY:514
//仮置き
int[] nRollBalloon = new int[] { -3, 514, 0, 0 };
int[] nRollNumber = new int[] { 48, 559, 0, 0 };
for( int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++ )
{
//CDTXMania.act文字コンソール.tPrint(0, 0, C文字コンソール.Eフォント種別.白, this.ct連打枠カウンター[player].n現在の値.ToString());
if ( this.ct連打枠カウンター[ player ].IsUnEnded)
{
if (ct連打枠カウンター[player].CurrentValue > 66 && !FadeOut[player].Counter.IsTicked)
{
FadeOut[player].Start();
}
var opacity = (int)FadeOut[player].GetAnimation();
if(ct連打枠カウンター[player].CurrentValue == 0 || ct連打枠カウンター[player].CurrentValue == 60)
{
bNowRollAnime = 0;
TJAPlayer3.Tx.Balloon_Number_Roll.Opacity = 64;
}
else if (ct連打枠カウンター[player].CurrentValue == 1 || ct連打枠カウンター[player].CurrentValue == 59)
{
bNowRollAnime = 1;
TJAPlayer3.Tx.Balloon_Number_Roll.Opacity = 128;
}
else if (ct連打枠カウンター[player].CurrentValue == 2 || ct連打枠カウンター[player].CurrentValue == 58)
{
bNowRollAnime = 2;
TJAPlayer3.Tx.Balloon_Number_Roll.Opacity = 192;
}
else if (ct連打枠カウンター[player].CurrentValue == 3 || ct連打枠カウンター[player].CurrentValue == 57)
{
bNowRollAnime = 3;
TJAPlayer3.Tx.Balloon_Number_Roll.Opacity = 255;
}
else if (ct連打枠カウンター[player].CurrentValue >= 4 || ct連打枠カウンター[player].CurrentValue <= 56)
{
bNowRollAnime = 4;
TJAPlayer3.Tx.Balloon_Number_Roll.Opacity = 255;
}
float width = TJAPlayer3.Tx.Balloon_Roll.szTextureSize.Width / 5.0f;
float height = TJAPlayer3.Tx.Balloon_Roll.szTextureSize.Height;
TJAPlayer3.Tx.Balloon_Roll?.t2D描画(TJAPlayer3.Skin.Game_Balloon_Roll_Frame_X[player], TJAPlayer3.Skin.Game_Balloon_Roll_Frame_Y[player], new RectangleF(0 + bNowRollAnime * width, 0, width, height));
this.t文字表示(TJAPlayer3.Skin.Game_Balloon_Roll_Number_X[player], TJAPlayer3.Skin.Game_Balloon_Roll_Number_Y[player], n連打数, player);
}
}
return base.Draw();
}
public void t枠表示時間延長(int player, bool first)
{
if ((this.ct連打枠カウンター[player].CurrentValue >= 6 && !first) || first)
this.ct連打枠カウンター[player] = new CCounter(0, 60, 40, TJAPlayer3.Timer);
if(!first)
this.ct連打枠カウンター[player].CurrentValue = 5;
else
this.ct連打枠カウンター[player].CurrentValue = 0;
}
public int bNowRollAnime;
public bool[] b表示;
public int[] n連打数;
public CCounter[] ct連打枠カウンター;
public CCounter[] ct連打アニメ;
private float[] RollScale = new float[]
{
0.000f,
0.123f, // リピート
0.164f,
0.164f,
0.164f,
0.137f,
0.110f,
0.082f,
0.055f,
0.000f
};
private Animations.FadeOut[] FadeOut;
[StructLayout(LayoutKind.Sequential)]
private struct ST文字位置
{
public char ch;
public Point pt;
}
private void t文字表示( int x, int y, int num, int nPlayer)
{
TJAPlayer3.Tx.Balloon_Number_Roll.vcScaleRatio.X = TJAPlayer3.Skin.Game_Balloon_Roll_Number_Scale;
TJAPlayer3.Tx.Balloon_Number_Roll.vcScaleRatio.Y = TJAPlayer3.Skin.Game_Balloon_Roll_Number_Scale + RollScale[this.ct連打アニメ[nPlayer].CurrentValue];
int[] nums = CConversion.SeparateDigits(num);
for (int j = 0; j < nums.Length; j++)
{
float offset = j - (nums.Length / 2.0f);
float _x = x - (TJAPlayer3.Skin.Game_Balloon_Number_Interval[0] * offset);
float _y = y - (TJAPlayer3.Skin.Game_Balloon_Number_Interval[1] * offset);
float width = TJAPlayer3.Tx.Balloon_Number_Roll.sz画像サイズ.Width / 10.0f;
float height = TJAPlayer3.Tx.Balloon_Number_Roll.sz画像サイズ.Height;
TJAPlayer3.Tx.Balloon_Number_Roll.t2D拡大率考慮下基準描画(_x, _y, new RectangleF(width * nums[j], 0, width, height));
}
}
}
}

View File

@ -7,11 +7,11 @@ using FDK;
namespace TJAPlayer3
{
internal class CAct演奏Drums連打キャラ : CActivity
internal class CActImplRollEffect : CActivity
{
// コンストラクタ
public CAct演奏Drums連打キャラ()
public CActImplRollEffect()
{
base.IsDeActivated = true;
}
@ -22,32 +22,6 @@ namespace TJAPlayer3
{
if (TJAPlayer3.ConfigIni.SimpleMode) return;
//if( CDTXMania.Tx.Effects_Roll[0] != null )
//{
// int[] arXseed = new int[] { 56, -10, 200, 345, 100, 451, 600, 260, -30, 534, 156, 363 };
// for (int i = 0; i < 1; i++)
// {
// for (int j = 0; j < 64; j++)
// {
// if (!this.st連打キャラ[j].b使用中)
// {
// this.st連打キャラ[j].b使用中 = true;
// if(this.nTex枚数 <= 1) this.st連打キャラ[j].nColor = 0;
// else this.st連打キャラ[j].nColor = CDTXMania.Random.Next( 0, this.nTex枚数 - 1);
// this.st連打キャラ[j].ct進行 = new CCounter( 0, 1000, 4, CDTXMania.Timer); // カウンタ
// //位置生成(β版)
// int nXseed = CDTXMania.Random.Next(12);
// this.st連打キャラ[ j ].fX開始点 = arXseed[ nXseed ];
// this.st連打キャラ[j].fX = arXseed[ nXseed ];
// this.st連打キャラ[j].fY = 720;
// this.st連打キャラ[j].fX加速度 = 5/2;
// this.st連打キャラ[j].fY加速度 = 5/2;
// break;
// }
// }
// }
//}
for (int i = 0; i < 128; i++)
{
if(!RollCharas[i].IsUsing)
@ -93,12 +67,7 @@ namespace TJAPlayer3
public override void Activate()
{
//for (int i = 0; i < 64; i++)
//{
// this.st連打キャラ[i] = new ST連打キャラ();
// this.st連打キャラ[i].b使用中 = false;
// this.st連打キャラ[i].ct進行 = new CCounter();
//}
for (int i = 0; i < 128; i++)
{
RollCharas[i] = new RollChara();
@ -111,10 +80,7 @@ namespace TJAPlayer3
}
public override void DeActivate()
{
//for (int i = 0; i < 64; i++)
//{
// this.st連打キャラ[i].ct進行 = null;
//}
for (int i = 0; i < 128; i++)
{
RollCharas[i].Counter = null;
@ -123,51 +89,18 @@ namespace TJAPlayer3
}
public override void CreateManagedResource()
{
//this.nTex枚数 = 4;
//this.txChara = new CTexture[ this.nTex枚数 ];
//for (int i = 0; i < this.nTex枚数; i++)
//{
// this.txChara[ i ] = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\RollEffect\00\" + i.ToString() + ".png" ) );
//}
base.CreateManagedResource();
}
public override void ReleaseManagedResource()
{
// for (int i = 0; i < this.nTex枚数; i++)
// {
//CDTXMania.tテクスチャの解放( ref this.txChara[ i ] );
// }
base.ReleaseManagedResource();
}
public override int Draw()
public override int Draw()
{
if ( !base.IsDeActivated && !TJAPlayer3.ConfigIni.SimpleMode)
{
//for( int i = 0; i < 64; i++ )
//{
// if( this.st連打キャラ[i].b使用中 )
// {
// this.st連打キャラ[i].n前回のValue = this.st連打キャラ[i].ct進行.n現在の値;
// this.st連打キャラ[i].ct進行.t進行();
// if (this.st連打キャラ[i].ct進行.b終了値に達した)
// {
// this.st連打キャラ[i].ct進行.t停止();
// this.st連打キャラ[i].b使用中 = false;
// }
// for (int n = this.st連打キャラ[i].n前回のValue; n < this.st連打キャラ[i].ct進行.n現在の値; n++)
// {
// this.st連打キャラ[i].fX += this.st連打キャラ[i].fX加速度;
// this.st連打キャラ[i].fY -= this.st連打キャラ[i].fY加速度;
// }
// if(CDTXMania.Tx.Effects_Roll[ this.st連打キャラ[ i ].nColor ] != null )
// {
// CDTXMania.Tx.Effects_Roll[ this.st連打キャラ[ i ].nColor ].t2D描画( CDTXMania.app.Device, (int)this.st連打キャラ[i].fX, (int)this.st連打キャラ[i].fY, new Rectangle( this.st連打キャラ[i].nColor * 0, 0, 128, 128 ) );
// }
// }
//}
if (TJAPlayer3.ConfigIni.nPlayerCount > 2) return 0;

View File

@ -1,281 +1,281 @@
using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using System.Runtime.InteropServices;
using FDK;
using System.Diagnostics;
namespace TJAPlayer3
{
internal class CAct演奏DrumsRunner : CActivity
{
/// <summary>
/// ランナー
/// </summary>
public CAct演奏DrumsRunner()
{
base.IsDeActivated = true;
}
public void Start(int Player, bool IsMiss, CDTX.CChip pChip)
{
if (Runner != null && !TJAPlayer3.ConfigIni.SimpleMode)
{
while (stRunners[Index].b使用中)
{
Index += 1;
if (Index >= 128)
{
Index = 0;
break; // 2018.6.15 IMARER 無限ループが発生するので修正
}
}
if (pChip.nチャンネル番号 < 0x15 || (pChip.nチャンネル番号 >= 0x1A))
{
if (!stRunners[Index].b使用中)
{
stRunners[Index].b使用中 = true;
stRunners[Index].nPlayer = Player;
if (IsMiss == true)
{
stRunners[Index].nType = 0;
}
else
{
stRunners[Index].nType = random.Next(1, Type + 1);
}
stRunners[Index].ct進行 = new CCounter(0, TJAPlayer3.Skin.Resolution[0], Timer, TJAPlayer3.Timer);
stRunners[Index].nOldValue = 0;
stRunners[Index].nNowPtn = 0;
stRunners[Index].fX = 0;
}
}
}
}
public override void Activate()
{
if (TJAPlayer3.ConfigIni.SimpleMode)
{
base.Activate();
return;
}
for (int i = 0; i < 128; i++)
{
stRunners[i] = new STRunner();
stRunners[i].b使用中 = false;
stRunners[i].ct進行 = new CCounter();
}
var preset = HScenePreset.GetBGPreset();
Random random = new Random();
var dancerOrigindir = CSkin.Path($"{TextureLoader.BASE}{TextureLoader.GAME}{TextureLoader.RUNNER}");
if (System.IO.Directory.Exists($@"{dancerOrigindir}"))
{
var dirs = System.IO.Directory.GetDirectories($@"{dancerOrigindir}");
if (dirs.Length > 0)
{
var _presetPath = (preset != null && preset.RunnerSet != null) ? $@"{dancerOrigindir}" + preset.RunnerSet[random.Next(0, preset.RunnerSet.Length)] : "";
var path = (preset != null && System.IO.Directory.Exists(_presetPath))
? _presetPath
: dirs[random.Next(0, dirs.Length)];
LoadRunnerConifg(path);
Runner = TJAPlayer3.tテクスチャの生成($@"{path}{Path.DirectorySeparatorChar}Runner.png");
}
}
// フィールド上で代入してたためこちらへ移動。
base.Activate();
}
public override void DeActivate()
{
if (TJAPlayer3.ConfigIni.SimpleMode)
{
base.DeActivate();
return;
}
for (int i = 0; i < 128; i++)
{
stRunners[i].ct進行 = null;
}
TJAPlayer3.tDisposeSafely(ref Runner);
base.DeActivate();
}
public override void CreateManagedResource()
{
base.CreateManagedResource();
}
public override void ReleaseManagedResource()
{
base.ReleaseManagedResource();
}
public override int Draw()
{
if (TJAPlayer3.ConfigIni.SimpleMode)
{
return base.Draw();
}
for (int i = 0; i < 128; i++)
{
if (stRunners[i].b使用中)
{
stRunners[i].nOldValue = stRunners[i].ct進行.CurrentValue;
stRunners[i].ct進行.Tick();
if (stRunners[i].ct進行.IsEnded || stRunners[i].fX > TJAPlayer3.Skin.Resolution[0])
{
stRunners[i].ct進行.Stop();
stRunners[i].b使用中 = false;
}
for (int n = stRunners[i].nOldValue; n < stRunners[i].ct進行.CurrentValue; n++)
{
stRunners[i].fX += (float)TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM[stRunners[i].nPlayer] / 18;
int Width = TJAPlayer3.Skin.Resolution[0] / Ptn;
stRunners[i].nNowPtn = (int)stRunners[i].fX / Width;
}
if (Runner != null)
{
if (stRunners[i].nPlayer == 0)
{
Runner.t2D描画((int)(StartPoint_X[0] + stRunners[i].fX), StartPoint_Y[0], new Rectangle(stRunners[i].nNowPtn * Size[0], stRunners[i].nType * Size[1], Size[0], Size[1]));
}
else
{
Runner.t2D描画((int)(StartPoint_X[1] + stRunners[i].fX), StartPoint_Y[1], new Rectangle(stRunners[i].nNowPtn * Size[0], stRunners[i].nType * Size[1], Size[0], Size[1]));
}
}
}
}
return base.Draw();
}
#region[ private ]
//-----------------
[StructLayout(LayoutKind.Sequential)]
private struct STRunner
{
public bool b使用中;
public int nPlayer;
public int nType;
public int nOldValue;
public int nNowPtn;
public float fX;
public CCounter ct進行;
}
private STRunner[] stRunners = new STRunner[128];
Random random = new Random();
int Index = 0;
private CTexture Runner;
private void LoadRunnerConifg(string dancerPath)
{
var _str = "";
TJAPlayer3.Skin.LoadSkinConfigFromFile(dancerPath + @"\RunnerConfig.txt", ref _str);
string[] delimiter = { "\n" };
string[] strSingleLine = _str.Split(delimiter, StringSplitOptions.RemoveEmptyEntries);
Size = new int[2] { 60, 125 };
Ptn = 48;
Type = 4;
StartPoint_X = new int[2] { 175, 175 };
StartPoint_Y = new int[2] { 40, 560 };
Timer = 16;
foreach (string s in strSingleLine)
{
string str = s.Replace('\t', ' ').TrimStart(new char[] { '\t', ' ' });
if ((str.Length != 0) && (str[0] != ';'))
{
try
{
string strCommand;
string strParam;
string[] strArray = str.Split(new char[] { '=' });
if (strArray.Length == 2)
{
strCommand = strArray[0].Trim();
strParam = strArray[1].Trim();
if (strCommand == "Game_Runner_Size")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
Size[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Game_Runner_Ptn")
{
Ptn = int.Parse(strParam);
}
else if (strCommand == "Game_Runner_Type")
{
Type = int.Parse(strParam);
}
else if (strCommand == "Game_Runner_Timer")
{
Timer = int.Parse(strParam);
}
else if (strCommand == "Game_Runner_StartPoint_X")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
StartPoint_X[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Game_Runner_StartPoint_Y")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
StartPoint_Y[i] = int.Parse(strSplit[i]);
}
}
}
continue;
}
catch (Exception exception)
{
Trace.TraceError(exception.ToString());
Trace.TraceError("例外が発生しましたが処理を継続します。 (6a32cc37-1527-412e-968a-512c1f0135cd)");
continue;
}
}
}
}
// ランナー画像のサイズ。 X, Y
private int[] Size;
// ランナーのコマ数
private int Ptn;
// ランナーのキャラクターのバリエーション(ミス時を含まない)。
private int Type;
private int Timer;
// スタート地点のX座標 1P, 2P
private int[] StartPoint_X;
// スタート地点のY座標 1P, 2P
private int[] StartPoint_Y;
//-----------------
#endregion
}
using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using System.Runtime.InteropServices;
using FDK;
using System.Diagnostics;
namespace TJAPlayer3
{
internal class CActImplRunner : CActivity
{
/// <summary>
/// ランナー
/// </summary>
public CActImplRunner()
{
base.IsDeActivated = true;
}
public void Start(int Player, bool IsMiss, CDTX.CChip pChip)
{
if (Runner != null && !TJAPlayer3.ConfigIni.SimpleMode)
{
while (stRunners[Index].b使用中)
{
Index += 1;
if (Index >= 128)
{
Index = 0;
break; // 2018.6.15 IMARER 無限ループが発生するので修正
}
}
if (pChip.nチャンネル番号 < 0x15 || (pChip.nチャンネル番号 >= 0x1A))
{
if (!stRunners[Index].b使用中)
{
stRunners[Index].b使用中 = true;
stRunners[Index].nPlayer = Player;
if (IsMiss == true)
{
stRunners[Index].nType = 0;
}
else
{
stRunners[Index].nType = random.Next(1, Type + 1);
}
stRunners[Index].ct進行 = new CCounter(0, TJAPlayer3.Skin.Resolution[0], Timer, TJAPlayer3.Timer);
stRunners[Index].nOldValue = 0;
stRunners[Index].nNowPtn = 0;
stRunners[Index].fX = 0;
}
}
}
}
public override void Activate()
{
if (TJAPlayer3.ConfigIni.SimpleMode)
{
base.Activate();
return;
}
for (int i = 0; i < 128; i++)
{
stRunners[i] = new STRunner();
stRunners[i].b使用中 = false;
stRunners[i].ct進行 = new CCounter();
}
var preset = HScenePreset.GetBGPreset();
Random random = new Random();
var dancerOrigindir = CSkin.Path($"{TextureLoader.BASE}{TextureLoader.GAME}{TextureLoader.RUNNER}");
if (System.IO.Directory.Exists($@"{dancerOrigindir}"))
{
var dirs = System.IO.Directory.GetDirectories($@"{dancerOrigindir}");
if (dirs.Length > 0)
{
var _presetPath = (preset != null && preset.RunnerSet != null) ? $@"{dancerOrigindir}" + preset.RunnerSet[random.Next(0, preset.RunnerSet.Length)] : "";
var path = (preset != null && System.IO.Directory.Exists(_presetPath))
? _presetPath
: dirs[random.Next(0, dirs.Length)];
LoadRunnerConifg(path);
Runner = TJAPlayer3.tテクスチャの生成($@"{path}{Path.DirectorySeparatorChar}Runner.png");
}
}
// フィールド上で代入してたためこちらへ移動。
base.Activate();
}
public override void DeActivate()
{
if (TJAPlayer3.ConfigIni.SimpleMode)
{
base.DeActivate();
return;
}
for (int i = 0; i < 128; i++)
{
stRunners[i].ct進行 = null;
}
TJAPlayer3.tDisposeSafely(ref Runner);
base.DeActivate();
}
public override void CreateManagedResource()
{
base.CreateManagedResource();
}
public override void ReleaseManagedResource()
{
base.ReleaseManagedResource();
}
public override int Draw()
{
if (TJAPlayer3.ConfigIni.SimpleMode)
{
return base.Draw();
}
for (int i = 0; i < 128; i++)
{
if (stRunners[i].b使用中)
{
stRunners[i].nOldValue = stRunners[i].ct進行.CurrentValue;
stRunners[i].ct進行.Tick();
if (stRunners[i].ct進行.IsEnded || stRunners[i].fX > TJAPlayer3.Skin.Resolution[0])
{
stRunners[i].ct進行.Stop();
stRunners[i].b使用中 = false;
}
for (int n = stRunners[i].nOldValue; n < stRunners[i].ct進行.CurrentValue; n++)
{
stRunners[i].fX += (float)TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM[stRunners[i].nPlayer] / 18;
int Width = TJAPlayer3.Skin.Resolution[0] / Ptn;
stRunners[i].nNowPtn = (int)stRunners[i].fX / Width;
}
if (Runner != null)
{
if (stRunners[i].nPlayer == 0)
{
Runner.t2D描画((int)(StartPoint_X[0] + stRunners[i].fX), StartPoint_Y[0], new Rectangle(stRunners[i].nNowPtn * Size[0], stRunners[i].nType * Size[1], Size[0], Size[1]));
}
else
{
Runner.t2D描画((int)(StartPoint_X[1] + stRunners[i].fX), StartPoint_Y[1], new Rectangle(stRunners[i].nNowPtn * Size[0], stRunners[i].nType * Size[1], Size[0], Size[1]));
}
}
}
}
return base.Draw();
}
#region[ private ]
//-----------------
[StructLayout(LayoutKind.Sequential)]
private struct STRunner
{
public bool b使用中;
public int nPlayer;
public int nType;
public int nOldValue;
public int nNowPtn;
public float fX;
public CCounter ct進行;
}
private STRunner[] stRunners = new STRunner[128];
Random random = new Random();
int Index = 0;
private CTexture Runner;
private void LoadRunnerConifg(string dancerPath)
{
var _str = "";
TJAPlayer3.Skin.LoadSkinConfigFromFile(dancerPath + @"\RunnerConfig.txt", ref _str);
string[] delimiter = { "\n" };
string[] strSingleLine = _str.Split(delimiter, StringSplitOptions.RemoveEmptyEntries);
Size = new int[2] { 60, 125 };
Ptn = 48;
Type = 4;
StartPoint_X = new int[2] { 175, 175 };
StartPoint_Y = new int[2] { 40, 560 };
Timer = 16;
foreach (string s in strSingleLine)
{
string str = s.Replace('\t', ' ').TrimStart(new char[] { '\t', ' ' });
if ((str.Length != 0) && (str[0] != ';'))
{
try
{
string strCommand;
string strParam;
string[] strArray = str.Split(new char[] { '=' });
if (strArray.Length == 2)
{
strCommand = strArray[0].Trim();
strParam = strArray[1].Trim();
if (strCommand == "Game_Runner_Size")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
Size[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Game_Runner_Ptn")
{
Ptn = int.Parse(strParam);
}
else if (strCommand == "Game_Runner_Type")
{
Type = int.Parse(strParam);
}
else if (strCommand == "Game_Runner_Timer")
{
Timer = int.Parse(strParam);
}
else if (strCommand == "Game_Runner_StartPoint_X")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
StartPoint_X[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Game_Runner_StartPoint_Y")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
StartPoint_Y[i] = int.Parse(strSplit[i]);
}
}
}
continue;
}
catch (Exception exception)
{
Trace.TraceError(exception.ToString());
Trace.TraceError("例外が発生しましたが処理を継続します。 (6a32cc37-1527-412e-968a-512c1f0135cd)");
continue;
}
}
}
}
// ランナー画像のサイズ。 X, Y
private int[] Size;
// ランナーのコマ数
private int Ptn;
// ランナーのキャラクターのバリエーション(ミス時を含まない)。
private int Type;
private int Timer;
// スタート地点のX座標 1P, 2P
private int[] StartPoint_X;
// スタート地点のY座標 1P, 2P
private int[] StartPoint_Y;
//-----------------
#endregion
}
}

View File

@ -7,7 +7,7 @@ using FDK;
namespace TJAPlayer3
{
internal class CAct演奏Drumsスコア : CAct演奏スコア共通
internal class CActImplScore : CAct演奏スコア共通
{
// CActivity 実装(共通クラスからの差分のみ)

View File

@ -1,266 +1,266 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using FDK;
namespace TJAPlayer3
{
class CAct演奏Drumsスコアランク : CActivity
{
public override void Activate()
{
double RollTimems = 0;
/*
foreach (var chip in TJAPlayer3.DTX.listChip)
{
if (NotesManager.IsRoll(chip))
{
RollTimems += (chip.nーツ終了時刻ms - chip.n発声時刻ms) / 1000.0;
}
}
*/
for (int player = 0; player < 5; player++)
{
this.ScoreRank[player] = new int[] { 500000, 600000, 700000, 800000, 900000, 950000,
Math.Max(1000000, (int)(TJAPlayer3.stage演奏ドラム画面.nAddScoreNiji[player] * TJAPlayer3.stage演奏ドラム画面.nNoteCount[player]) + (int)(TJAPlayer3.stage演奏ドラム画面.nBalloonCount[player] * 100) + (int)(Math.Ceiling(TJAPlayer3.stage演奏ドラム画面.nRollTimeMs[player] * 16.6 / 10) * 100 * 10)) };
for (int i = 0; i < 7; i++)
{
this.counter[player][i] = new CCounter();
}
}
base.Activate();
}
public override void DeActivate()
{
base.DeActivate();
}
public override void CreateManagedResource()
{
TowerResult_ScoreRankEffect = TJAPlayer3.tテクスチャの生成(CSkin.Path($"{TextureLoader.BASE}{TextureLoader.TOWERRESULT}ScoreRankEffect.png"));
base.CreateManagedResource();
}
public override void ReleaseManagedResource()
{
TJAPlayer3.tDisposeSafely(ref TowerResult_ScoreRankEffect);
base.ReleaseManagedResource();
}
private void displayScoreRank(int i, int player, float x, float y, int mode = 0)
{
CCounter cct = this.counter[player][i];
CTexture tex = TJAPlayer3.Tx.ScoreRank;
if (mode == 1) // tower
tex = TowerResult_ScoreRankEffect;
if (tex == null)
return;
if (!cct.IsTicked)
{
cct.Start(0, 3000, 1, TJAPlayer3.Timer);
}
if (cct.CurrentValue <= 255)
{
tex.Opacity = cct.CurrentValue;
x = ((cct.CurrentValue / 255.0f) - 1.0f) * (player == 0 ? -TJAPlayer3.Skin.Game_Judge_Move[0] : TJAPlayer3.Skin.Game_Judge_Move[0]);
y = ((cct.CurrentValue / 255.0f) - 1.0f) * (player == 0 ? -TJAPlayer3.Skin.Game_Judge_Move[1] : TJAPlayer3.Skin.Game_Judge_Move[1]);
}
if (cct.CurrentValue > 255 && cct.CurrentValue <= 255 + 180)
{
tex.Opacity = 255;
float newSize = 1.0f + (float)Math.Sin((cct.CurrentValue - 255) * (Math.PI / 180)) * 0.2f;
tex.vcScaleRatio.X = newSize;
tex.vcScaleRatio.Y = newSize;
x = 0;
y = 0;
}
if (cct.CurrentValue > 255 + 180 && cct.CurrentValue <= 2745)
{
tex.Opacity = 255;
tex.vcScaleRatio.X = 1.0f;
tex.vcScaleRatio.Y = 1.0f;
x = 0;
y = 0;
}
if (cct.CurrentValue >= 2745 && cct.CurrentValue <= 3000)
{
tex.Opacity = 255 - ((cct.CurrentValue - 2745));
x = ((cct.CurrentValue - 2745) / 255.0f) * (player == 0 || TJAPlayer3.ConfigIni.nPlayerCount >= 2 ? -TJAPlayer3.Skin.Game_Judge_Move[0] : TJAPlayer3.Skin.Game_Judge_Move[0]);
y = ((cct.CurrentValue - 2745) / 255.0f) * (player == 0 || TJAPlayer3.ConfigIni.nPlayerCount >= 2 ? -TJAPlayer3.Skin.Game_Judge_Move[1] : TJAPlayer3.Skin.Game_Judge_Move[1]);
}
var xpos = 0;
var ypos = 0;
if (TJAPlayer3.ConfigIni.nPlayerCount == 5)
{
xpos = TJAPlayer3.Skin.Game_ScoreRank_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * player);
ypos = TJAPlayer3.Skin.Game_ScoreRank_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * player);
}
else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3)
{
xpos = TJAPlayer3.Skin.Game_ScoreRank_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * player);
ypos = TJAPlayer3.Skin.Game_ScoreRank_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * player);
}
else
{
xpos = TJAPlayer3.Skin.Game_ScoreRank_X[player];
ypos = TJAPlayer3.Skin.Game_ScoreRank_Y[player];
}
xpos += (int)x;
ypos += (int)y;
int width;
int height;
switch (mode)
{
case 1:
width = tex.szTextureSize.Width / 7;
height = tex.szTextureSize.Height;
break;
default:
width = tex.szTextureSize.Width;
height = tex.szTextureSize.Height / 7;
break;
}
if (mode == 0)
tex.t2D拡大率考慮中央基準描画(xpos, ypos, new System.Drawing.Rectangle(0, height * i, width, height));
else if (mode == 1 && player == 0)
tex.t2D拡大率考慮中央基準描画(xpos, ypos, new System.Drawing.Rectangle(width * i, 0, width, height));
}
public override int Draw()
{
if (TJAPlayer3.stageSongSelect.nChoosenSongDifficulty[0] != (int)Difficulty.Dan)
{
float x = 0;
float y = 0;
for (int i = 0; i < 7; i++)
{
if (TJAPlayer3.stageSongSelect.nChoosenSongDifficulty[0] != (int)Difficulty.Tower)
{
for (int player = 0; player < 5; player++)
{
#region [Ensou score ranks]
counter[player][i].Tick();
if (TJAPlayer3.stage演奏ドラム画面.actScore.GetScore(player) >= ScoreRank[player][i])
{
displayScoreRank(i, player, x, y);
#region [Legacy]
/*
if (!this.counter[i].b進行中)
{
this.counter[i].t開始(0, 3000, 1, TJAPlayer3.Timer);
}
if (counter[i].n現在の値 <= 255)
{
TJAPlayer3.Tx.ScoreRank.Opacity = counter[i].n現在の値;
x = 51 - (counter[i].n現在の値 / 5.0f);
}
if (counter[i].n現在の値 > 255 && counter[i].n現在の値 <= 255 + 180)
{
TJAPlayer3.Tx.ScoreRank.Opacity = 255;
TJAPlayer3.Tx.ScoreRank.vc拡大縮小倍率.X = 1.0f + (float)Math.Sin((counter[i].n現在の値 - 255) * (Math.PI / 180)) * 0.2f;
TJAPlayer3.Tx.ScoreRank.vc拡大縮小倍率.Y = 1.0f + (float)Math.Sin((counter[i].n現在の値 - 255) * (Math.PI / 180)) * 0.2f;
x = 0;
}
if (counter[i].n現在の値 > 255 + 180 && counter[i].n現在の値 <= 2745)
{
TJAPlayer3.Tx.ScoreRank.Opacity = 255;
TJAPlayer3.Tx.ScoreRank.vc拡大縮小倍率.X = 1.0f;
TJAPlayer3.Tx.ScoreRank.vc拡大縮小倍率.Y = 1.0f;
x = 0;
}
if (counter[i].n現在の値 >= 2745 && counter[i].n現在の値 <= 3000)
{
TJAPlayer3.Tx.ScoreRank.Opacity = 255 - ((counter[i].n現在の値 - 2745));
x = -((counter[i].n現在の値 - 2745) / 5.0f);
}
TJAPlayer3.Tx.ScoreRank.t2D拡大率考慮中央基準描画(87, 98 + (int)x, new System.Drawing.Rectangle(0, i == 0 ? i * 114 : i * 120, 140, i == 0 ? 114 : 120));
*/
#endregion
}
x = 0;
}
#endregion
}
else if (TJAPlayer3.stageSongSelect.nChoosenSongDifficulty[0] == (int)Difficulty.Tower)
{
#region [Tower score ranks]
double progress = CFloorManagement.LastRegisteredFloor / ((double)TJAPlayer3.stageSongSelect.rChoosenSong.arスコア[5]..nTotalFloor);
bool[] conditions =
{
progress >= 0.1,
progress >= 0.25,
progress >= 0.5,
progress >= 0.75,
progress == 1 && CFloorManagement.CurrentNumberOfLives > 0,
TJAPlayer3.stage演奏ドラム画面.CChartScore[0].nMiss == 0 && TJAPlayer3.stage演奏ドラム画面.CChartScore[0].nMine == 0,
TJAPlayer3.stage演奏ドラム画面.CChartScore[0].nGood == 0
};
counter[0][i].Tick();
bool satisfied = true;
for (int j = 0; j <= i; j++)
if (conditions[j] == false)
{
satisfied = false;
break;
}
if (satisfied == true)
{
displayScoreRank(i, 0, x, y, 1);
}
#endregion
}
}
}
//TJAPlayer3.act文字コンソール.tPrint(0, 0, C文字コンソール.Eフォント種別.白, ScoreRank[6].ToString());
//TJAPlayer3.act文字コンソール.tPrint(0, 10, C文字コンソール.Eフォント種別.白, ScoreRank2P[6].ToString());
return base.Draw();
}
private CTexture TowerResult_ScoreRankEffect;
public int[][] ScoreRank = new int[5][];
private CCounter[][] counter = new CCounter[5][] {
new CCounter[7],
new CCounter[7],
new CCounter[7],
new CCounter[7],
new CCounter[7]
};
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using FDK;
namespace TJAPlayer3
{
class CActImplScoreRank : CActivity
{
public override void Activate()
{
double RollTimems = 0;
/*
foreach (var chip in TJAPlayer3.DTX.listChip)
{
if (NotesManager.IsRoll(chip))
{
RollTimems += (chip.nーツ終了時刻ms - chip.n発声時刻ms) / 1000.0;
}
}
*/
for (int player = 0; player < 5; player++)
{
this.ScoreRank[player] = new int[] { 500000, 600000, 700000, 800000, 900000, 950000,
Math.Max(1000000, (int)(TJAPlayer3.stage演奏ドラム画面.nAddScoreNiji[player] * TJAPlayer3.stage演奏ドラム画面.nNoteCount[player]) + (int)(TJAPlayer3.stage演奏ドラム画面.nBalloonCount[player] * 100) + (int)(Math.Ceiling(TJAPlayer3.stage演奏ドラム画面.nRollTimeMs[player] * 16.6 / 10) * 100 * 10)) };
for (int i = 0; i < 7; i++)
{
this.counter[player][i] = new CCounter();
}
}
base.Activate();
}
public override void DeActivate()
{
base.DeActivate();
}
public override void CreateManagedResource()
{
TowerResult_ScoreRankEffect = TJAPlayer3.tテクスチャの生成(CSkin.Path($"{TextureLoader.BASE}{TextureLoader.TOWERRESULT}ScoreRankEffect.png"));
base.CreateManagedResource();
}
public override void ReleaseManagedResource()
{
TJAPlayer3.tDisposeSafely(ref TowerResult_ScoreRankEffect);
base.ReleaseManagedResource();
}
private void displayScoreRank(int i, int player, float x, float y, int mode = 0)
{
CCounter cct = this.counter[player][i];
CTexture tex = TJAPlayer3.Tx.ScoreRank;
if (mode == 1) // tower
tex = TowerResult_ScoreRankEffect;
if (tex == null)
return;
if (!cct.IsTicked)
{
cct.Start(0, 3000, 1, TJAPlayer3.Timer);
}
if (cct.CurrentValue <= 255)
{
tex.Opacity = cct.CurrentValue;
x = ((cct.CurrentValue / 255.0f) - 1.0f) * (player == 0 ? -TJAPlayer3.Skin.Game_Judge_Move[0] : TJAPlayer3.Skin.Game_Judge_Move[0]);
y = ((cct.CurrentValue / 255.0f) - 1.0f) * (player == 0 ? -TJAPlayer3.Skin.Game_Judge_Move[1] : TJAPlayer3.Skin.Game_Judge_Move[1]);
}
if (cct.CurrentValue > 255 && cct.CurrentValue <= 255 + 180)
{
tex.Opacity = 255;
float newSize = 1.0f + (float)Math.Sin((cct.CurrentValue - 255) * (Math.PI / 180)) * 0.2f;
tex.vcScaleRatio.X = newSize;
tex.vcScaleRatio.Y = newSize;
x = 0;
y = 0;
}
if (cct.CurrentValue > 255 + 180 && cct.CurrentValue <= 2745)
{
tex.Opacity = 255;
tex.vcScaleRatio.X = 1.0f;
tex.vcScaleRatio.Y = 1.0f;
x = 0;
y = 0;
}
if (cct.CurrentValue >= 2745 && cct.CurrentValue <= 3000)
{
tex.Opacity = 255 - ((cct.CurrentValue - 2745));
x = ((cct.CurrentValue - 2745) / 255.0f) * (player == 0 || TJAPlayer3.ConfigIni.nPlayerCount >= 2 ? -TJAPlayer3.Skin.Game_Judge_Move[0] : TJAPlayer3.Skin.Game_Judge_Move[0]);
y = ((cct.CurrentValue - 2745) / 255.0f) * (player == 0 || TJAPlayer3.ConfigIni.nPlayerCount >= 2 ? -TJAPlayer3.Skin.Game_Judge_Move[1] : TJAPlayer3.Skin.Game_Judge_Move[1]);
}
var xpos = 0;
var ypos = 0;
if (TJAPlayer3.ConfigIni.nPlayerCount == 5)
{
xpos = TJAPlayer3.Skin.Game_ScoreRank_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * player);
ypos = TJAPlayer3.Skin.Game_ScoreRank_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * player);
}
else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3)
{
xpos = TJAPlayer3.Skin.Game_ScoreRank_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * player);
ypos = TJAPlayer3.Skin.Game_ScoreRank_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * player);
}
else
{
xpos = TJAPlayer3.Skin.Game_ScoreRank_X[player];
ypos = TJAPlayer3.Skin.Game_ScoreRank_Y[player];
}
xpos += (int)x;
ypos += (int)y;
int width;
int height;
switch (mode)
{
case 1:
width = tex.szTextureSize.Width / 7;
height = tex.szTextureSize.Height;
break;
default:
width = tex.szTextureSize.Width;
height = tex.szTextureSize.Height / 7;
break;
}
if (mode == 0)
tex.t2D拡大率考慮中央基準描画(xpos, ypos, new System.Drawing.Rectangle(0, height * i, width, height));
else if (mode == 1 && player == 0)
tex.t2D拡大率考慮中央基準描画(xpos, ypos, new System.Drawing.Rectangle(width * i, 0, width, height));
}
public override int Draw()
{
if (TJAPlayer3.stageSongSelect.nChoosenSongDifficulty[0] != (int)Difficulty.Dan)
{
float x = 0;
float y = 0;
for (int i = 0; i < 7; i++)
{
if (TJAPlayer3.stageSongSelect.nChoosenSongDifficulty[0] != (int)Difficulty.Tower)
{
for (int player = 0; player < 5; player++)
{
#region [Ensou score ranks]
counter[player][i].Tick();
if (TJAPlayer3.stage演奏ドラム画面.actScore.GetScore(player) >= ScoreRank[player][i])
{
displayScoreRank(i, player, x, y);
#region [Legacy]
/*
if (!this.counter[i].b進行中)
{
this.counter[i].t開始(0, 3000, 1, TJAPlayer3.Timer);
}
if (counter[i].n現在の値 <= 255)
{
TJAPlayer3.Tx.ScoreRank.Opacity = counter[i].n現在の値;
x = 51 - (counter[i].n現在の値 / 5.0f);
}
if (counter[i].n現在の値 > 255 && counter[i].n現在の値 <= 255 + 180)
{
TJAPlayer3.Tx.ScoreRank.Opacity = 255;
TJAPlayer3.Tx.ScoreRank.vc拡大縮小倍率.X = 1.0f + (float)Math.Sin((counter[i].n現在の値 - 255) * (Math.PI / 180)) * 0.2f;
TJAPlayer3.Tx.ScoreRank.vc拡大縮小倍率.Y = 1.0f + (float)Math.Sin((counter[i].n現在の値 - 255) * (Math.PI / 180)) * 0.2f;
x = 0;
}
if (counter[i].n現在の値 > 255 + 180 && counter[i].n現在の値 <= 2745)
{
TJAPlayer3.Tx.ScoreRank.Opacity = 255;
TJAPlayer3.Tx.ScoreRank.vc拡大縮小倍率.X = 1.0f;
TJAPlayer3.Tx.ScoreRank.vc拡大縮小倍率.Y = 1.0f;
x = 0;
}
if (counter[i].n現在の値 >= 2745 && counter[i].n現在の値 <= 3000)
{
TJAPlayer3.Tx.ScoreRank.Opacity = 255 - ((counter[i].n現在の値 - 2745));
x = -((counter[i].n現在の値 - 2745) / 5.0f);
}
TJAPlayer3.Tx.ScoreRank.t2D拡大率考慮中央基準描画(87, 98 + (int)x, new System.Drawing.Rectangle(0, i == 0 ? i * 114 : i * 120, 140, i == 0 ? 114 : 120));
*/
#endregion
}
x = 0;
}
#endregion
}
else if (TJAPlayer3.stageSongSelect.nChoosenSongDifficulty[0] == (int)Difficulty.Tower)
{
#region [Tower score ranks]
double progress = CFloorManagement.LastRegisteredFloor / ((double)TJAPlayer3.stageSongSelect.rChoosenSong.arスコア[5]..nTotalFloor);
bool[] conditions =
{
progress >= 0.1,
progress >= 0.25,
progress >= 0.5,
progress >= 0.75,
progress == 1 && CFloorManagement.CurrentNumberOfLives > 0,
TJAPlayer3.stage演奏ドラム画面.CChartScore[0].nMiss == 0 && TJAPlayer3.stage演奏ドラム画面.CChartScore[0].nMine == 0,
TJAPlayer3.stage演奏ドラム画面.CChartScore[0].nGood == 0
};
counter[0][i].Tick();
bool satisfied = true;
for (int j = 0; j <= i; j++)
if (conditions[j] == false)
{
satisfied = false;
break;
}
if (satisfied == true)
{
displayScoreRank(i, 0, x, y, 1);
}
#endregion
}
}
}
//TJAPlayer3.act文字コンソール.tPrint(0, 0, C文字コンソール.Eフォント種別.白, ScoreRank[6].ToString());
//TJAPlayer3.act文字コンソール.tPrint(0, 10, C文字コンソール.Eフォント種別.白, ScoreRank2P[6].ToString());
return base.Draw();
}
private CTexture TowerResult_ScoreRankEffect;
public int[][] ScoreRank = new int[5][];
private CCounter[][] counter = new CCounter[5][] {
new CCounter[7],
new CCounter[7],
new CCounter[7],
new CCounter[7],
new CCounter[7]
};
}
}

View File

@ -9,9 +9,9 @@ using System.Drawing;
namespace TJAPlayer3
{
class CAct演奏DrumsTrainingMode : CActivity
class CActImplTrainingMode : CActivity
{
public CAct演奏DrumsTrainingMode()
public CActImplTrainingMode()
{
base.IsDeActivated = true;
}

View File

@ -1,74 +0,0 @@
using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using FDK;
namespace TJAPlayer3
{
internal class CAct演奏DrumsDanger : CAct演奏Danger共通
{
// コンストラクタ
//public CAct演奏DrumsDanger()
//{
// base.b活性化してない = true;
//}
// CActivity 実装
//public override void On活性化()
//{
// this.bDanger中 = false;
// this.ct移動用 = new CCounter();
// this.ct透明度用 = new CCounter();
// base.On活性化();
//}
//public override void On非活性化()
//{
// this.ct移動用 = null;
// this.ct透明度用 = null;
// base.On非活性化();
//}
public override void CreateManagedResource()
{
base.CreateManagedResource();
}
public override void ReleaseManagedResource()
{
TJAPlayer3.tテクスチャの解放( ref this.txDANGER );
base.ReleaseManagedResource();
}
public override int Draw()
{
throw new InvalidOperationException( "t進行描画(bool)のほうを使用してください。" );
}
/// <summary>
/// ドラム画面のDANGER描画
/// </summary>
/// <param name="bIsDangerDrums">DrumsのゲージがDangerかどうか(Guitar/Bassと共用のゲージ)</param>
/// <param name="bIsDangerGuitar">Guitarのゲージ(未使用)</param>
/// <param name="bIsDangerBass">Bassのゲージ(未使用)</param>
/// <returns></returns>
public override int t進行描画( bool bIsDangerDrums, bool bIsDangerGuitar, bool bIsDangerBass )
{
return 0;
}
// その他
#region [ private ]
//-----------------
//private bool bDanger中;
//private CCounter ct移動用;
//private CCounter ct透明度用;
// private const int n右位置 = 0x12a;
// private const int n左位置 = 0x26;
private readonly Rectangle[] rc領域 = new Rectangle[] { new Rectangle( 0, 0, 0x20, 0x40 ), new Rectangle( 0x20, 0, 0x20, 0x40 ) };
private CTexture txDANGER;
//-----------------
#endregion
}
}

View File

@ -1,60 +0,0 @@
using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
using System.Drawing;
using System.IO;
using FDK;
namespace TJAPlayer3
{
internal class CAct演奏Drumsグラフ : CActivity
{
// コンストラクタ
public CAct演奏Drumsグラフ()
{
base.IsDeActivated = true;
}
// CActivity 実装
public override void Activate()
{
base.Activate();
}
public override void DeActivate()
{
base.DeActivate();
}
public override void CreateManagedResource()
{
base.CreateManagedResource();
}
public override void ReleaseManagedResource()
{
base.ReleaseManagedResource();
}
public override int Draw()
{
if( !base.IsDeActivated )
{
if( base.IsFirstDraw )
{
}
}
return 0;
}
// その他
#region [ private ]
//----------------
//-----------------
#endregion
}
}

View File

@ -1,25 +0,0 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace TJAPlayer3
{
internal class CAct演奏DrumsコンボDGB : CAct演奏Combo共通
{
// CAct演奏Combo共通 実装
protected override void tコンボ表示_ギター( int nCombo値, int nジャンプインデックス )
{
}
protected override void tコンボ表示_ドラム( int nCombo値, int nジャンプインデックス )
{
}
protected override void tコンボ表示_ベース( int nCombo値, int nジャンプインデックス )
{
}
protected override void tコンボ表示_太鼓(int nCombo値, int nジャンプインデックス, int nPlayer)
{
base.tコンボ表示_太鼓( nCombo値, nジャンプインデックス, nPlayer );
}
}
}

View File

@ -1,44 +0,0 @@
using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
using System.Drawing;
using FDK;
namespace TJAPlayer3
{
internal class CAct演奏Drumsステータスパネル : CAct演奏ステータスパネル共通
{
// コンストラクタ
public override void Activate()
{
base.Activate();
}
public override void CreateManagedResource()
{
base.CreateManagedResource();
}
public override void ReleaseManagedResource()
{
base.ReleaseManagedResource();
}
public override int Draw()
{
return 0;
}
// その他
#region [ private ]
//-----------------
//-----------------
#endregion
}
}

View File

@ -25,17 +25,14 @@ namespace TJAPlayer3
base.eStageID = CStage.EStage.Game;
base.ePhaseID = CStage.EPhase.Common_NORMAL;
base.IsDeActivated = true;
base.ChildActivities.Add( this.actPad = new CAct演奏Drumsパッド() );
base.ChildActivities.Add( this.actCombo = new CAct演奏DrumsコンボDGB() );
base.ChildActivities.Add( this.actDANGER = new CAct演奏DrumsDanger() );
base.ChildActivities.Add( this.actChipFireD = new CAct演奏DrumsチップファイアD() );
base.ChildActivities.Add( this.actPad = new CActImplPad() );
base.ChildActivities.Add( this.actCombo = new CActImplCombo() );
base.ChildActivities.Add( this.actChipFireD = new CActImplFireworks() );
base.ChildActivities.Add( this.Rainbow = new Rainbow() );
base.ChildActivities.Add( this.actGauge = new CAct演奏Drumsゲージ() );
base.ChildActivities.Add( this.actGraph = new CAct演奏Drumsグラフ() ); // #24074 2011.01.23 add ikanick
base.ChildActivities.Add( this.actJudgeString = new CAct演奏Drums判定文字列() );
base.ChildActivities.Add( this.actGauge = new CActImplGauge() );
base.ChildActivities.Add( this.actJudgeString = new CActImplJudgeText() );
base.ChildActivities.Add( this.actTaikoLaneFlash = new TaikoLaneFlash() );
base.ChildActivities.Add( this.actScore = new CAct演奏Drumsスコア() );
base.ChildActivities.Add( this.actStatusPanels = new CAct演奏Drumsステータスパネル() );
base.ChildActivities.Add( this.actScore = new CActImplScore() );
base.ChildActivities.Add( this.act譜面スクロール速度 = new CAct演奏スクロール速度() );
base.ChildActivities.Add( this.actAVI = new CAct演奏AVI() );
base.ChildActivities.Add( this.actPanel = new CAct演奏パネル文字列() );
@ -45,32 +42,32 @@ namespace TJAPlayer3
base.ChildActivities.Add( this.actFI = new CActFIFOStart() );
base.ChildActivities.Add( this.actFO = new CActFIFOBlack() );
base.ChildActivities.Add( this.actFOClear = new CActFIFOResult() );
base.ChildActivities.Add( this.actLane = new CAct演奏Drumsレーン() );
base.ChildActivities.Add( this.actEnd = new CAct演奏Drums演奏終了演出() );
base.ChildActivities.Add( this.actDancer = new CAct演奏DrumsDancer() );
base.ChildActivities.Add( this.actMtaiko = new CAct演奏DrumsMtaiko() );
base.ChildActivities.Add( this.actLaneTaiko = new CAct演奏Drumsレーン太鼓() );
base.ChildActivities.Add( this.actRoll = new CAct演奏Drums連打() );
base.ChildActivities.Add( this.actBalloon = new CAct演奏Drums風船() );
base.ChildActivities.Add( this.actChara = new CAct演奏Drumsキャラクター() );
base.ChildActivities.Add( this.actLane = new CActImplLane() );
base.ChildActivities.Add( this.actEnd = new CActImplClearAnimation() );
base.ChildActivities.Add( this.actDancer = new CActImplDancer() );
base.ChildActivities.Add( this.actMtaiko = new CActImplMtaiko() );
base.ChildActivities.Add( this.actLaneTaiko = new CActImplLaneTaiko() );
base.ChildActivities.Add( this.actRoll = new CActImplRoll() );
base.ChildActivities.Add( this.actBalloon = new CActImplBalloon() );
base.ChildActivities.Add( this.actChara = new CActImplCharacter() );
base.ChildActivities.Add( this.actGame = new CAct演奏Drumsゲームモード() );
base.ChildActivities.Add( this.actBackground = new CAct演奏Drums背景() );
base.ChildActivities.Add( this.actRollChara = new CAct演奏Drums連打キャラ() );
base.ChildActivities.Add( this.actComboBalloon = new CAct演奏Drumsコンボ吹き出し() );
base.ChildActivities.Add( this.actBackground = new CActImplBackground() );
base.ChildActivities.Add( this.actRollChara = new CActImplRollEffect() );
base.ChildActivities.Add( this.actComboBalloon = new CActImplComboBalloon() );
base.ChildActivities.Add( this.actComboVoice = new CAct演奏Combo音声() );
base.ChildActivities.Add( this.actPauseMenu = new CAct演奏PauseMenu() );
base.ChildActivities.Add(this.actChipEffects = new CAct演奏Drumsチップエフェクト());
base.ChildActivities.Add(this.actFooter = new CAct演奏DrumsFooter());
base.ChildActivities.Add(this.actRunner = new CAct演奏DrumsRunner());
base.ChildActivities.Add(this.actMob = new CAct演奏DrumsMob());
base.ChildActivities.Add(this.actChipEffects = new CActImplChipEffects());
base.ChildActivities.Add(this.actFooter = new CActImplFooter());
base.ChildActivities.Add(this.actRunner = new CActImplRunner());
base.ChildActivities.Add(this.actMob = new CActImplMob());
base.ChildActivities.Add(this.GoGoSplash = new GoGoSplash());
base.ChildActivities.Add(this.FlyingNotes = new FlyingNotes());
base.ChildActivities.Add(this.FireWorks = new FireWorks());
base.ChildActivities.Add(this.PuchiChara = new PuchiChara());
base.ChildActivities.Add(this.ScoreRank = new CAct演奏Drumsスコアランク());
base.ChildActivities.Add(this.ScoreRank = new CActImplScoreRank());
base.ChildActivities.Add(this.actDan = new Dan_Cert());
base.ChildActivities.Add(this.actTokkun = new CAct演奏DrumsTrainingMode());
base.ChildActivities.Add(this.actTokkun = new CActImplTrainingMode());
base.ChildActivities.Add(this.actAIBattle = new AIBattle());
#region[ ]
ST文字位置[] st文字位置Array = new ST文字位置[ 12 ];
@ -650,7 +647,7 @@ namespace TJAPlayer3
if (HGaugeMethods.UNSAFE_IsRainbow(i))
{
double dbUnit = (((60.0 / (TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM[i]))));
this.actChara.ChangeAnime(i, CAct演奏Drumsキャラクター.Anime.Combo10_Max, true);
this.actChara.ChangeAnime(i, CActImplCharacter.Anime.Combo10_Max, true);
}
}
}
@ -658,14 +655,14 @@ namespace TJAPlayer3
{
if (TJAPlayer3.Skin.Characters_Become_Cleared_Ptn[Character] != 0)
{
this.actChara.ChangeAnime(i, CAct演奏Drumsキャラクター.Anime.Cleared, true);;
this.actChara.ChangeAnime(i, CActImplCharacter.Anime.Cleared, true);;
}
}
else
{
if (TJAPlayer3.Skin.Characters_ClearOut_Ptn[Character] != 0)
{
this.actChara.ChangeAnime(i, CAct演奏Drumsキャラクター.Anime.ClearOut, true);
this.actChara.ChangeAnime(i, CActImplCharacter.Anime.ClearOut, true);
}
}
}
@ -707,22 +704,21 @@ namespace TJAPlayer3
public char ch;
public Point pt;
}
public CAct演奏DrumsチップファイアD actChipFireD;
public CActImplFireworks actChipFireD;
private CAct演奏Drumsグラフ actGraph; // #24074 2011.01.23 add ikanick
private CAct演奏Drumsパッド actPad;
public CAct演奏Drumsレーン actLane;
public CAct演奏DrumsMtaiko actMtaiko;
public CAct演奏Drumsレーン太鼓 actLaneTaiko;
public CAct演奏Drums演奏終了演出 actEnd;
private CActImplPad actPad;
public CActImplLane actLane;
public CActImplMtaiko actMtaiko;
public CActImplLaneTaiko actLaneTaiko;
public CActImplClearAnimation actEnd;
private CAct演奏Drumsゲームモード actGame;
public CAct演奏DrumsTrainingMode actTokkun;
public CAct演奏Drums背景 actBackground;
public CActImplTrainingMode actTokkun;
public CActImplBackground actBackground;
public GoGoSplash GoGoSplash;
public FlyingNotes FlyingNotes;
public FireWorks FireWorks;
public PuchiChara PuchiChara;
public CAct演奏Drumsスコアランク ScoreRank;
public CActImplScoreRank ScoreRank;
private bool bフィルイン中;
private readonly EPad[] eチャンネルtoパッド = new EPad[]
{
@ -910,10 +906,6 @@ namespace TJAPlayer3
{
base.t進行描画_AVI( 0, 0 );
}
protected override void t進行描画_DANGER()
{
this.actDANGER.t進行描画( this.actGauge.IsDanger(EInstrumentPad.DRUMS), false, false );
}
private void t進行描画_チップファイアD()
{
@ -2545,10 +2537,10 @@ namespace TJAPlayer3
this.n風船残り[i],
i,
NotesManager.IsFuzeRoll(chkChip)
? CAct演奏Drums風船.EBalloonType.FUSEROLL
? CActImplBalloon.EBalloonType.FUSEROLL
: NotesManager.IsKusudama(chkChip)
? CAct演奏Drums風船.EBalloonType.KUSUDAMA
: CAct演奏Drums風船.EBalloonType.BALLOON
? CActImplBalloon.EBalloonType.KUSUDAMA
: CActImplBalloon.EBalloonType.BALLOON
);
}
else