pure tedium under copium
@ -9009,6 +9009,8 @@ namespace TJAPlayer3
|
|||||||
public int Gauge_Soul_Fire_X_Tower = 886;
|
public int Gauge_Soul_Fire_X_Tower = 886;
|
||||||
public int Gauge_Soul_Fire_Y_Tower = 22;
|
public int Gauge_Soul_Fire_Y_Tower = 22;
|
||||||
public int Game_Gauge_Rainbow_Ptn;
|
public int Game_Gauge_Rainbow_Ptn;
|
||||||
|
public int Game_Gauge_Rainbow_2PGauge_Ptn;
|
||||||
|
public int Game_Gauge_Rainbow_Flat_Ptn;
|
||||||
public int Game_Gauge_Dan_Rainbow_Ptn;
|
public int Game_Gauge_Dan_Rainbow_Ptn;
|
||||||
public int Game_Gauge_Rainbow_Timer = 50;
|
public int Game_Gauge_Rainbow_Timer = 50;
|
||||||
|
|
||||||
|
790
TJAPlayer3/Helpers/HGaugeMethods.cs
Normal file
@ -0,0 +1,790 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Drawing;
|
||||||
|
using FDK;
|
||||||
|
|
||||||
|
|
||||||
|
namespace TJAPlayer3
|
||||||
|
{
|
||||||
|
class HGaugeMethods
|
||||||
|
{
|
||||||
|
public enum EGaugeType
|
||||||
|
{
|
||||||
|
NORMAL = 0,
|
||||||
|
HARD,
|
||||||
|
EXTREME
|
||||||
|
}
|
||||||
|
|
||||||
|
public static float BombDamage = 4f;
|
||||||
|
public static float FuserollDamage = 4f;
|
||||||
|
public static float HardGaugeFillRatio = 1f;
|
||||||
|
public static float ExtremeGaugeFillRatio = 1f;
|
||||||
|
|
||||||
|
private static Dictionary<Difficulty, float> DifficultyToHardGaugeDamage = new Dictionary<Difficulty, float>
|
||||||
|
{
|
||||||
|
[Difficulty.Easy] = 4.5f,
|
||||||
|
[Difficulty.Normal] = 5f,
|
||||||
|
[Difficulty.Hard] = 6f,
|
||||||
|
[Difficulty.Oni] = 6.5f,
|
||||||
|
[Difficulty.Edit] = 6.5f
|
||||||
|
};
|
||||||
|
|
||||||
|
private static Dictionary<Difficulty, float> DifficultyToExtremeGaugeDamage = new Dictionary<Difficulty, float>
|
||||||
|
{
|
||||||
|
[Difficulty.Easy] = 4.5f,
|
||||||
|
[Difficulty.Normal] = 5f,
|
||||||
|
[Difficulty.Hard] = 6f,
|
||||||
|
[Difficulty.Oni] = 6.5f,
|
||||||
|
[Difficulty.Edit] = 6.5f
|
||||||
|
};
|
||||||
|
|
||||||
|
private static Dictionary<int, float> LevelExtraToHardGaugeDamage = new Dictionary<int, float>
|
||||||
|
{
|
||||||
|
[11] = 7.5f,
|
||||||
|
[12] = 8f,
|
||||||
|
[13] = 8.5f
|
||||||
|
};
|
||||||
|
|
||||||
|
private static Dictionary<int, float> LevelExtraToExtremeGaugeDamage = new Dictionary<int, float>
|
||||||
|
{
|
||||||
|
[11] = 7.5f,
|
||||||
|
[12] = 8f,
|
||||||
|
[13] = 8.5f
|
||||||
|
};
|
||||||
|
|
||||||
|
private static Dictionary<string, EGaugeType> GaugeTypeStringToEnum = new Dictionary<string, EGaugeType>
|
||||||
|
{
|
||||||
|
["Normal"] = EGaugeType.NORMAL,
|
||||||
|
["Hard"] = EGaugeType.HARD,
|
||||||
|
["Extreme"] = EGaugeType.EXTREME
|
||||||
|
};
|
||||||
|
|
||||||
|
private static Dictionary<Difficulty, float> DifficultyToNorma = new Dictionary<Difficulty, float>
|
||||||
|
{
|
||||||
|
[Difficulty.Easy] = 60f,
|
||||||
|
[Difficulty.Normal] = 70f,
|
||||||
|
[Difficulty.Hard] = 70f,
|
||||||
|
[Difficulty.Oni] = 80f,
|
||||||
|
[Difficulty.Edit] = 80f
|
||||||
|
};
|
||||||
|
|
||||||
|
private static Dictionary<int, float> LevelExtraToNorma = new Dictionary<int, float>
|
||||||
|
{
|
||||||
|
[11] = 88f,
|
||||||
|
[12] = 92f,
|
||||||
|
[13] = 96f
|
||||||
|
};
|
||||||
|
|
||||||
|
#region [General calculation]
|
||||||
|
|
||||||
|
public static float tHardGaugeGetDamage(Difficulty diff, int level)
|
||||||
|
{
|
||||||
|
float damage = 6.5f;
|
||||||
|
|
||||||
|
if (DifficultyToHardGaugeDamage.ContainsKey(diff))
|
||||||
|
damage = DifficultyToHardGaugeDamage[diff];
|
||||||
|
|
||||||
|
int levelCaped = Math.Min(13, level);
|
||||||
|
if (LevelExtraToHardGaugeDamage.ContainsKey(levelCaped))
|
||||||
|
damage = LevelExtraToHardGaugeDamage[levelCaped];
|
||||||
|
|
||||||
|
return damage;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static float tExtremeGaugeGetDamage(Difficulty diff, int level)
|
||||||
|
{
|
||||||
|
float damage = 6.5f;
|
||||||
|
|
||||||
|
if (DifficultyToExtremeGaugeDamage.ContainsKey(diff))
|
||||||
|
damage = DifficultyToExtremeGaugeDamage[diff];
|
||||||
|
|
||||||
|
int levelCaped = Math.Min(13, level);
|
||||||
|
if (LevelExtraToExtremeGaugeDamage.ContainsKey(levelCaped))
|
||||||
|
damage = LevelExtraToExtremeGaugeDamage[levelCaped];
|
||||||
|
|
||||||
|
return damage;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static float tHardGaugeGetKillscreenRatio(Difficulty diff, int level, EGaugeType gaugeType, int perfectHits, int totalNotes)
|
||||||
|
{
|
||||||
|
if (gaugeType != EGaugeType.EXTREME) return 0f;
|
||||||
|
|
||||||
|
float norma = tGetCurrentGaugeNorma(diff, level);
|
||||||
|
float ratio = Math.Min(1f, Math.Max(0f, perfectHits / (float)totalNotes));
|
||||||
|
|
||||||
|
return ratio * norma;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static bool tIsDangerHardGauge(Difficulty diff, int level, EGaugeType gaugeType, float percentObtained, int perfectHits, int totalNotes)
|
||||||
|
{
|
||||||
|
if (gaugeType == EGaugeType.NORMAL || diff > Difficulty.Edit) return false;
|
||||||
|
float percent = Math.Min(100f, Math.Max(0f, percentObtained));
|
||||||
|
return percent < 100f - ((100f - tHardGaugeGetKillscreenRatio(diff, level, gaugeType, perfectHits, totalNotes)) * 0.7f);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static float tGetCurrentGaugeNorma(Difficulty diff, int level)
|
||||||
|
{
|
||||||
|
float norma = 80f;
|
||||||
|
|
||||||
|
if (DifficultyToNorma.ContainsKey(diff))
|
||||||
|
norma = DifficultyToNorma[diff];
|
||||||
|
|
||||||
|
int levelCaped = Math.Min(13, level);
|
||||||
|
if (LevelExtraToNorma.ContainsKey(levelCaped))
|
||||||
|
norma = LevelExtraToNorma[levelCaped];
|
||||||
|
|
||||||
|
return norma;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static EGaugeType tGetGaugeTypeEnum(string gaugeType)
|
||||||
|
{
|
||||||
|
EGaugeType gt = EGaugeType.NORMAL;
|
||||||
|
|
||||||
|
if (GaugeTypeStringToEnum.ContainsKey(gaugeType))
|
||||||
|
gt = GaugeTypeStringToEnum[gaugeType];
|
||||||
|
|
||||||
|
return gt;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static bool tNormaCheck(Difficulty diff, int level, EGaugeType gaugeType, float percentObtained, float killZonePercent)
|
||||||
|
{
|
||||||
|
float percent = Math.Min(100f, Math.Max(0f, percentObtained));
|
||||||
|
float norma = tGetCurrentGaugeNorma(diff, level);
|
||||||
|
|
||||||
|
if ((gaugeType == EGaugeType.HARD || gaugeType == EGaugeType.EXTREME) && percent > killZonePercent) return true;
|
||||||
|
if (gaugeType == EGaugeType.NORMAL && percent >= norma) return true;
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region [Displayables]
|
||||||
|
|
||||||
|
public static void tDrawGaugeBase(CTexture baseTexture, int x, int y, float scale_x, float scale_y)
|
||||||
|
{
|
||||||
|
if (baseTexture != null)
|
||||||
|
{
|
||||||
|
baseTexture.vc拡大縮小倍率.X = scale_x;
|
||||||
|
baseTexture.vc拡大縮小倍率.Y = scale_y;
|
||||||
|
|
||||||
|
baseTexture.t2D描画(TJAPlayer3.app.Device, x, y,
|
||||||
|
new Rectangle(
|
||||||
|
GaugeBox[0],
|
||||||
|
GaugeBox[1],
|
||||||
|
GaugeBox[2],
|
||||||
|
GaugeBox[3])
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void tDrawGaugeBaseClear(CTexture baseTexture, int x, int y, Difficulty diff, int level, EGaugeType gaugeType, float scale_x, float scale_y)
|
||||||
|
{
|
||||||
|
if (gaugeType != EGaugeType.NORMAL || diff > Difficulty.Edit) return;
|
||||||
|
float norma = tGetCurrentGaugeNorma(diff, level) - 2f; // A segment flashes earlier
|
||||||
|
float revnorma = 100f - norma;
|
||||||
|
|
||||||
|
if (baseTexture != null)
|
||||||
|
{
|
||||||
|
baseTexture.vc拡大縮小倍率.X = scale_x;
|
||||||
|
baseTexture.vc拡大縮小倍率.Y = scale_y;
|
||||||
|
|
||||||
|
int gaugeTexLength = GaugeBox[2];
|
||||||
|
int clearPartLength = (int)(gaugeTexLength * (revnorma / 100f));
|
||||||
|
int texStartPoint = (int)(gaugeTexLength * (norma / 100f));
|
||||||
|
int xOff = (int)(scale_x * texStartPoint);
|
||||||
|
|
||||||
|
baseTexture.t2D描画(TJAPlayer3.app.Device, x + xOff, y,
|
||||||
|
new Rectangle(
|
||||||
|
GaugeBox[0] + texStartPoint,
|
||||||
|
GaugeBox[1],
|
||||||
|
clearPartLength,
|
||||||
|
GaugeBox[3])
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void tDrawGaugeFill(
|
||||||
|
CTexture fillTexture,
|
||||||
|
CTexture yellowTexture,
|
||||||
|
CTexture rainbowTexture,
|
||||||
|
int x,
|
||||||
|
int y,
|
||||||
|
Difficulty diff,
|
||||||
|
int level,
|
||||||
|
float currentPercent,
|
||||||
|
EGaugeType gaugeType,
|
||||||
|
float scale_x,
|
||||||
|
float scale_y,
|
||||||
|
int flashOpacity,
|
||||||
|
int perfectHits,
|
||||||
|
int totalNotes
|
||||||
|
)
|
||||||
|
{
|
||||||
|
if (diff > Difficulty.Edit) return;
|
||||||
|
float norma = tGetCurrentGaugeNorma(diff, level) - 2f; // A segment flashes earlier
|
||||||
|
float percent = Math.Min(100f, Math.Max(0f, currentPercent));
|
||||||
|
|
||||||
|
int gaugeTexLength = GaugeBox[2];
|
||||||
|
float nWidth = (gaugeTexLength / 50f);
|
||||||
|
int closestTwo = (int)((int)(percent / 2) * nWidth);
|
||||||
|
int closestNorma = (gaugeType != EGaugeType.NORMAL) ? gaugeTexLength : (int)(gaugeTexLength * (norma / 100f));
|
||||||
|
|
||||||
|
bool normaCheck = tNormaCheck(diff, level, gaugeType, percent, 0);
|
||||||
|
bool isRainbow = (rainbowTexture != null && percent >= 100f && gaugeType == EGaugeType.NORMAL);
|
||||||
|
|
||||||
|
// Fill
|
||||||
|
if (fillTexture != null && !isRainbow)
|
||||||
|
{
|
||||||
|
fillTexture.vc拡大縮小倍率.X = scale_x;
|
||||||
|
fillTexture.vc拡大縮小倍率.Y = scale_y;
|
||||||
|
|
||||||
|
fillTexture.Opacity = 255;
|
||||||
|
if (gaugeType != EGaugeType.NORMAL && tIsDangerHardGauge(diff, level, gaugeType, percent, perfectHits, totalNotes)) fillTexture.Opacity = 255 - flashOpacity;
|
||||||
|
fillTexture.t2D描画(TJAPlayer3.app.Device, x, y,
|
||||||
|
new Rectangle(
|
||||||
|
GaugeBox[0],
|
||||||
|
GaugeBox[1],
|
||||||
|
Math.Min(closestTwo, closestNorma),
|
||||||
|
GaugeBox[3])
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (gaugeType != EGaugeType.NORMAL) return;
|
||||||
|
if (!normaCheck) return;
|
||||||
|
|
||||||
|
// Yellow
|
||||||
|
if (yellowTexture != null && !isRainbow)
|
||||||
|
{
|
||||||
|
int texStartPoint = (int)(gaugeTexLength * (norma / 100f));
|
||||||
|
int differencial = closestTwo - closestNorma;
|
||||||
|
int xOff = (int)(scale_x * texStartPoint);
|
||||||
|
|
||||||
|
yellowTexture.vc拡大縮小倍率.X = scale_x;
|
||||||
|
yellowTexture.vc拡大縮小倍率.Y = scale_y;
|
||||||
|
|
||||||
|
yellowTexture.Opacity = 255;
|
||||||
|
yellowTexture.t2D描画(TJAPlayer3.app.Device, x + xOff, y,
|
||||||
|
new Rectangle(
|
||||||
|
GaugeBox[0] + texStartPoint,
|
||||||
|
GaugeBox[1],
|
||||||
|
differencial,
|
||||||
|
GaugeBox[3])
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Rainbow
|
||||||
|
if (rainbowTexture != null && percent >= 100f)
|
||||||
|
{
|
||||||
|
rainbowTexture.vc拡大縮小倍率.X = scale_x;
|
||||||
|
rainbowTexture.vc拡大縮小倍率.Y = scale_y;
|
||||||
|
|
||||||
|
rainbowTexture.t2D描画(TJAPlayer3.app.Device, x, y,
|
||||||
|
new Rectangle(
|
||||||
|
GaugeBox[0],
|
||||||
|
GaugeBox[1],
|
||||||
|
GaugeBox[2],
|
||||||
|
GaugeBox[3])
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void tDrawGaugeFlash(CTexture flashTexture, int x, int y, int Opacity, Difficulty diff, int level, float currentPercent, EGaugeType gaugeType, float scale_x, float scale_y)
|
||||||
|
{
|
||||||
|
if (gaugeType != EGaugeType.NORMAL || diff > Difficulty.Edit) return ;
|
||||||
|
float norma = tGetCurrentGaugeNorma(diff, level) - 2f; // A segment flashes earlier
|
||||||
|
float percent = Math.Min(100f, Math.Max(0f, currentPercent));
|
||||||
|
if (tNormaCheck(diff, level, gaugeType, percent, 0) && percent < 100.0)
|
||||||
|
{
|
||||||
|
if (flashTexture != null)
|
||||||
|
{
|
||||||
|
flashTexture.vc拡大縮小倍率.X = scale_x;
|
||||||
|
flashTexture.vc拡大縮小倍率.Y = scale_y;
|
||||||
|
|
||||||
|
flashTexture.Opacity = Opacity;
|
||||||
|
flashTexture.t2D描画(TJAPlayer3.app.Device, x, y,
|
||||||
|
new Rectangle(
|
||||||
|
GaugeBox[0],
|
||||||
|
GaugeBox[1],
|
||||||
|
(int)(GaugeBox[2] * (norma / 100f)),
|
||||||
|
GaugeBox[3])
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void tDrawKillZone(CTexture killzoneTexture, int x, int y, Difficulty diff, int level, EGaugeType gaugeType, float scale_x, float scale_y, int perfectHits, int totalNotes)
|
||||||
|
{
|
||||||
|
if (gaugeType != EGaugeType.EXTREME || diff > Difficulty.Edit) return;
|
||||||
|
float currentFill = tHardGaugeGetKillscreenRatio(diff, level, gaugeType, perfectHits, totalNotes);
|
||||||
|
if (killzoneTexture != null)
|
||||||
|
{
|
||||||
|
killzoneTexture.vc拡大縮小倍率.X = scale_x;
|
||||||
|
killzoneTexture.vc拡大縮小倍率.Y = scale_y;
|
||||||
|
|
||||||
|
killzoneTexture.t2D描画(TJAPlayer3.app.Device, x, y,
|
||||||
|
new Rectangle(
|
||||||
|
GaugeBox[0],
|
||||||
|
GaugeBox[1],
|
||||||
|
(int)(GaugeBox[2] * (currentFill / 100f)),
|
||||||
|
GaugeBox[3])
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void tDrawClearIcon(CTexture clearIcon, Difficulty diff, int level, float currentPercent, int text_x, int text_y, EGaugeType gaugeType, int perfectHits, int totalNotes)
|
||||||
|
{
|
||||||
|
if (clearIcon == null) return;
|
||||||
|
if (diff > Difficulty.Edit) return;
|
||||||
|
|
||||||
|
float percent = Math.Min(100f, Math.Max(0f, currentPercent));
|
||||||
|
bool highlight = (gaugeType != EGaugeType.NORMAL)
|
||||||
|
? tIsDangerHardGauge(diff, level, gaugeType, currentPercent, perfectHits, totalNotes)
|
||||||
|
: tNormaCheck(diff, level, gaugeType, percent, 0);
|
||||||
|
|
||||||
|
clearIcon.Opacity = 255;
|
||||||
|
if (highlight)
|
||||||
|
{
|
||||||
|
clearIcon.t2D描画(TJAPlayer3.app.Device, text_x, text_y,
|
||||||
|
new Rectangle(
|
||||||
|
TJAPlayer3.Skin.Game_Gauge_ClearText_Rect[0],
|
||||||
|
TJAPlayer3.Skin.Game_Gauge_ClearText_Rect[1],
|
||||||
|
TJAPlayer3.Skin.Game_Gauge_ClearText_Rect[2],
|
||||||
|
TJAPlayer3.Skin.Game_Gauge_ClearText_Rect[3]
|
||||||
|
));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
clearIcon.t2D描画(TJAPlayer3.app.Device, text_x, text_y,
|
||||||
|
new Rectangle(
|
||||||
|
TJAPlayer3.Skin.Game_Gauge_ClearText_Clear_Rect[0],
|
||||||
|
TJAPlayer3.Skin.Game_Gauge_ClearText_Clear_Rect[1],
|
||||||
|
TJAPlayer3.Skin.Game_Gauge_ClearText_Clear_Rect[2],
|
||||||
|
TJAPlayer3.Skin.Game_Gauge_ClearText_Clear_Rect[3]
|
||||||
|
));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void tDrawSoulFire(CTexture soulFire, Difficulty diff, int level, float currentPercent, EGaugeType gaugeType, float scale_x, float scale_y, int fire_x, int fire_y, int fireFrame)
|
||||||
|
{
|
||||||
|
if (soulFire == null) return;
|
||||||
|
if (gaugeType != EGaugeType.NORMAL || diff > Difficulty.Edit) return;
|
||||||
|
float percent = Math.Min(100f, Math.Max(0f, currentPercent));
|
||||||
|
|
||||||
|
int soulfire_width = soulFire.szテクスチャサイズ.Width / 8;
|
||||||
|
int soulfire_height = soulFire.szテクスチャサイズ.Height;
|
||||||
|
|
||||||
|
if (percent >= 100.0)
|
||||||
|
{
|
||||||
|
soulFire.vc拡大縮小倍率.X = scale_x;
|
||||||
|
soulFire.vc拡大縮小倍率.Y = scale_y;
|
||||||
|
|
||||||
|
soulFire.t2D描画(TJAPlayer3.app.Device, fire_x, fire_y, new Rectangle(soulfire_width * fireFrame, 0, soulfire_width, soulfire_height));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void tDrawSoulLetter(CTexture soulLetter, Difficulty diff, int level, float currentPercent, EGaugeType gaugeType, float scale_x, float scale_y, int soul_x, int soul_y)
|
||||||
|
{
|
||||||
|
if (soulLetter == null) return;
|
||||||
|
if (gaugeType != EGaugeType.NORMAL || diff > Difficulty.Edit) return;
|
||||||
|
float norma = tGetCurrentGaugeNorma(diff, level);
|
||||||
|
float percent = Math.Min(100f, Math.Max(0f, currentPercent));
|
||||||
|
|
||||||
|
soulLetter.vc拡大縮小倍率.X = scale_x;
|
||||||
|
soulLetter.vc拡大縮小倍率.Y = scale_y;
|
||||||
|
|
||||||
|
int soul_height = soulLetter.szテクスチャサイズ.Height / 2;
|
||||||
|
if (tNormaCheck(diff, level, gaugeType, percent, 0))
|
||||||
|
{
|
||||||
|
soulLetter.t2D描画(TJAPlayer3.app.Device, soul_x, soul_y, new Rectangle(0, 0, soulLetter.szテクスチャサイズ.Width, soul_height));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
soulLetter.t2D描画(TJAPlayer3.app.Device, soul_x, soul_y, new Rectangle(0, soul_height, soulLetter.szテクスチャサイズ.Width, soul_height));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void tDrawCompleteGauge(
|
||||||
|
CTexture baseTexture,
|
||||||
|
CTexture baseNormaTexture,
|
||||||
|
CTexture flashTexture,
|
||||||
|
CTexture fillTexture,
|
||||||
|
CTexture yellowTexture,
|
||||||
|
CTexture[] rainbowTextureArr,
|
||||||
|
CTexture killzoneTexture,
|
||||||
|
CTexture clearIcon,
|
||||||
|
CTexture soulLetter,
|
||||||
|
CTexture soulFire,
|
||||||
|
int x,
|
||||||
|
int y,
|
||||||
|
int Opacity,
|
||||||
|
int RainbowTextureIndex,
|
||||||
|
int SoulFireIndex,
|
||||||
|
Difficulty diff,
|
||||||
|
int level,
|
||||||
|
float currentPercent,
|
||||||
|
EGaugeType gaugeType,
|
||||||
|
float scale_x,
|
||||||
|
float scale_y,
|
||||||
|
int text_x,
|
||||||
|
int text_y,
|
||||||
|
int perfectHits,
|
||||||
|
int totalNotes,
|
||||||
|
int soul_x,
|
||||||
|
int soul_y,
|
||||||
|
int fire_x,
|
||||||
|
int fire_y
|
||||||
|
)
|
||||||
|
{
|
||||||
|
// Layers : Base - Base clear - Fill - Flash - Killzone - Clear logo - Soul fire - Soul text
|
||||||
|
tDrawGaugeBase(baseTexture, x, y, scale_x, scale_y);
|
||||||
|
tDrawGaugeBaseClear(baseNormaTexture, x, y, diff, level, gaugeType, scale_x, scale_y);
|
||||||
|
tDrawGaugeFill(fillTexture, yellowTexture, (rainbowTextureArr != null && RainbowTextureIndex < rainbowTextureArr.Length) ? rainbowTextureArr[RainbowTextureIndex] : null, x, y, diff, level, currentPercent, gaugeType, scale_x, scale_y, Opacity, perfectHits, totalNotes);
|
||||||
|
tDrawGaugeFlash(flashTexture, x, y, Opacity, diff, level, currentPercent, gaugeType, scale_x, scale_y);
|
||||||
|
tDrawKillZone(killzoneTexture, x, y, diff, level, gaugeType, scale_x, scale_y, perfectHits, totalNotes);
|
||||||
|
tDrawClearIcon(clearIcon, diff, level, currentPercent, text_x, text_y, gaugeType, perfectHits, totalNotes);
|
||||||
|
tDrawSoulFire(soulFire, diff, level, currentPercent, gaugeType, scale_x, scale_y, fire_x, fire_y, SoulFireIndex);
|
||||||
|
tDrawSoulLetter(soulLetter, diff, level, currentPercent, gaugeType, scale_x, scale_y, soul_x, soul_y);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
// Use with caution
|
||||||
|
#region [Unsafe methods]
|
||||||
|
|
||||||
|
public static bool UNSAFE_FastNormaCheck(int player)
|
||||||
|
{
|
||||||
|
var chara = TJAPlayer3.Tx.Characters[TJAPlayer3.SaveFileInstances[TJAPlayer3.GetActualPlayer(player)].data.Character];
|
||||||
|
var _dif = TJAPlayer3.stage選曲.n確定された曲の難易度[player];
|
||||||
|
return tNormaCheck(
|
||||||
|
(Difficulty)_dif,
|
||||||
|
TJAPlayer3.stage選曲.r確定された曲.arスコア[_dif].譜面情報.nレベル[_dif],
|
||||||
|
tGetGaugeTypeEnum(chara.effect.Gauge),
|
||||||
|
(float)TJAPlayer3.stage演奏ドラム画面.actGauge.db現在のゲージ値[player],
|
||||||
|
UNSAFE_KillZonePercent(player)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static bool UNSAFE_IsRainbow(int player)
|
||||||
|
{
|
||||||
|
var chara = TJAPlayer3.Tx.Characters[TJAPlayer3.SaveFileInstances[TJAPlayer3.GetActualPlayer(player)].data.Character];
|
||||||
|
if (tGetGaugeTypeEnum(chara.effect.Gauge) != EGaugeType.NORMAL) return false;
|
||||||
|
return (float)TJAPlayer3.stage演奏ドラム画面.actGauge.db現在のゲージ値[player] >= 100f;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static float UNSAFE_KillZonePercent(int player)
|
||||||
|
{
|
||||||
|
var chara = TJAPlayer3.Tx.Characters[TJAPlayer3.SaveFileInstances[TJAPlayer3.GetActualPlayer(player)].data.Character];
|
||||||
|
CDTX[] dtxs =
|
||||||
|
{
|
||||||
|
TJAPlayer3.DTX,
|
||||||
|
TJAPlayer3.DTX_2P,
|
||||||
|
TJAPlayer3.DTX_3P,
|
||||||
|
TJAPlayer3.DTX_4P,
|
||||||
|
TJAPlayer3.DTX_5P
|
||||||
|
};
|
||||||
|
|
||||||
|
// Total hits and perfect hits
|
||||||
|
int perfectHits = TJAPlayer3.stage演奏ドラム画面.CChartScore[player].nGreat;
|
||||||
|
int totalHits = dtxs[player].nノーツ数[3];
|
||||||
|
|
||||||
|
// Difficulty
|
||||||
|
int _dif = TJAPlayer3.stage選曲.n確定された曲の難易度[player];
|
||||||
|
Difficulty difficulty = (Difficulty)_dif;
|
||||||
|
int level = TJAPlayer3.stage選曲.r確定された曲.arスコア[_dif].譜面情報.nレベル[_dif];
|
||||||
|
|
||||||
|
return tHardGaugeGetKillscreenRatio(
|
||||||
|
difficulty,
|
||||||
|
level,
|
||||||
|
tGetGaugeTypeEnum(chara.effect.Gauge),
|
||||||
|
perfectHits,
|
||||||
|
totalHits);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void UNSAFE_DrawGaugeFast(int player, int opacity, int rainbowTextureIndex, int soulFlameIndex)
|
||||||
|
{
|
||||||
|
var chara = TJAPlayer3.Tx.Characters[TJAPlayer3.SaveFileInstances[TJAPlayer3.GetActualPlayer(player)].data.Character];
|
||||||
|
CDTX[] dtxs =
|
||||||
|
{
|
||||||
|
TJAPlayer3.DTX,
|
||||||
|
TJAPlayer3.DTX_2P,
|
||||||
|
TJAPlayer3.DTX_3P,
|
||||||
|
TJAPlayer3.DTX_4P,
|
||||||
|
TJAPlayer3.DTX_5P
|
||||||
|
};
|
||||||
|
|
||||||
|
// Set box
|
||||||
|
GaugeBox = new int[]{ TJAPlayer3.Skin.Game_Gauge_Rect[0], TJAPlayer3.Skin.Game_Gauge_Rect[1], TJAPlayer3.Skin.Game_Gauge_Rect[2], TJAPlayer3.Skin.Game_Gauge_Rect[3] };
|
||||||
|
|
||||||
|
// Gauge pos
|
||||||
|
int gauge_x = 0;
|
||||||
|
int gauge_y = 0;
|
||||||
|
|
||||||
|
if (TJAPlayer3.ConfigIni.nPlayerCount == 5)
|
||||||
|
{
|
||||||
|
gauge_x = TJAPlayer3.Skin.Game_Gauge_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * player);
|
||||||
|
gauge_y = TJAPlayer3.Skin.Game_Gauge_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * player);
|
||||||
|
}
|
||||||
|
else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3)
|
||||||
|
{
|
||||||
|
gauge_x = TJAPlayer3.Skin.Game_Gauge_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * player);
|
||||||
|
gauge_y = TJAPlayer3.Skin.Game_Gauge_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * player);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
gauge_x = TJAPlayer3.Skin.Game_Gauge_X[player];
|
||||||
|
gauge_y = TJAPlayer3.Skin.Game_Gauge_Y[player];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Text pos
|
||||||
|
int text_x = 0;
|
||||||
|
int text_y = 0;
|
||||||
|
if (TJAPlayer3.ConfigIni.nPlayerCount <= 2)
|
||||||
|
{
|
||||||
|
if (TJAPlayer3.ConfigIni.bAIBattleMode)
|
||||||
|
{
|
||||||
|
text_x = TJAPlayer3.Skin.Game_Gauge_ClearText_X_AI;
|
||||||
|
text_y = TJAPlayer3.Skin.Game_Gauge_ClearText_Y_AI;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
text_x = TJAPlayer3.Skin.Game_Gauge_ClearText_X[player];
|
||||||
|
text_y = TJAPlayer3.Skin.Game_Gauge_ClearText_Y[player];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Soul pos
|
||||||
|
int soul_x = 0;
|
||||||
|
int soul_y = 0;
|
||||||
|
if (TJAPlayer3.ConfigIni.bAIBattleMode)
|
||||||
|
{
|
||||||
|
soul_x = TJAPlayer3.Skin.Gauge_Soul_X_AI;
|
||||||
|
soul_y = TJAPlayer3.Skin.Gauge_Soul_Y_AI;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (TJAPlayer3.ConfigIni.nPlayerCount == 5)
|
||||||
|
{
|
||||||
|
soul_x = TJAPlayer3.Skin.Gauge_Soul_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * player);
|
||||||
|
soul_y = TJAPlayer3.Skin.Gauge_Soul_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * player);
|
||||||
|
}
|
||||||
|
else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3)
|
||||||
|
{
|
||||||
|
soul_x = TJAPlayer3.Skin.Gauge_Soul_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * player);
|
||||||
|
soul_y = TJAPlayer3.Skin.Gauge_Soul_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * player);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
soul_x = TJAPlayer3.Skin.Gauge_Soul_X[player];
|
||||||
|
soul_y = TJAPlayer3.Skin.Gauge_Soul_Y[player];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Fire pos
|
||||||
|
int fire_x = 0;
|
||||||
|
int fire_y = 0;
|
||||||
|
if (TJAPlayer3.ConfigIni.bAIBattleMode)
|
||||||
|
{
|
||||||
|
fire_x = TJAPlayer3.Skin.Gauge_Soul_Fire_X_AI;
|
||||||
|
fire_y = TJAPlayer3.Skin.Gauge_Soul_Fire_Y_AI;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (TJAPlayer3.ConfigIni.nPlayerCount == 5)
|
||||||
|
{
|
||||||
|
fire_x = TJAPlayer3.Skin.Gauge_Soul_Fire_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * player);
|
||||||
|
fire_y = TJAPlayer3.Skin.Gauge_Soul_Fire_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * player);
|
||||||
|
}
|
||||||
|
else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3)
|
||||||
|
{
|
||||||
|
fire_x = TJAPlayer3.Skin.Gauge_Soul_Fire_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * player);
|
||||||
|
fire_y = TJAPlayer3.Skin.Gauge_Soul_Fire_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * player);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
fire_x = TJAPlayer3.Skin.Gauge_Soul_Fire_X[player];
|
||||||
|
fire_y = TJAPlayer3.Skin.Gauge_Soul_Fire_Y[player];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Total hits and perfect hits
|
||||||
|
int perfectHits = TJAPlayer3.stage演奏ドラム画面.CChartScore[player].nGreat;
|
||||||
|
int totalHits = dtxs[player].nノーツ数[3];
|
||||||
|
|
||||||
|
// Scale
|
||||||
|
float scale = 1.0f;
|
||||||
|
if (TJAPlayer3.ConfigIni.bAIBattleMode)
|
||||||
|
{
|
||||||
|
scale = 0.8f;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Difficulty
|
||||||
|
int _dif = TJAPlayer3.stage選曲.n確定された曲の難易度[player];
|
||||||
|
Difficulty difficulty = (Difficulty)_dif;
|
||||||
|
int level = TJAPlayer3.stage選曲.r確定された曲.arスコア[_dif].譜面情報.nレベル[_dif];
|
||||||
|
|
||||||
|
// Current percent
|
||||||
|
float currentPercent = (float)TJAPlayer3.stage演奏ドラム画面.actGauge.db現在のゲージ値[player];
|
||||||
|
|
||||||
|
// Gauge type
|
||||||
|
EGaugeType gaugeType = tGetGaugeTypeEnum(chara.effect.Gauge);
|
||||||
|
|
||||||
|
// Textures
|
||||||
|
int _4pGaugeIDX = (TJAPlayer3.ConfigIni.nPlayerCount >= 3) ? 1 : 0;
|
||||||
|
int _usedGauge = player + 3 * _4pGaugeIDX;
|
||||||
|
if (TJAPlayer3.P1IsBlue()) _usedGauge = 2;
|
||||||
|
_4pGaugeIDX = (TJAPlayer3.ConfigIni.nPlayerCount >= 3) ? 2
|
||||||
|
: (player == 1) ? 1
|
||||||
|
: 0;
|
||||||
|
|
||||||
|
CTexture baseTexture = TJAPlayer3.Tx.Gauge_Base[_usedGauge];
|
||||||
|
CTexture fillTexture = TJAPlayer3.Tx.Gauge[_usedGauge];
|
||||||
|
|
||||||
|
CTexture[] rainbowTextureArr = (new CTexture[][]{ TJAPlayer3.Tx.Gauge_Rainbow , TJAPlayer3.Tx.Gauge_Rainbow_2PGauge, TJAPlayer3.Tx.Gauge_Rainbow_Flat })[_4pGaugeIDX];
|
||||||
|
CTexture yellowTexture = TJAPlayer3.Tx.Gauge_Clear[_4pGaugeIDX];
|
||||||
|
CTexture baseNormaTexture = TJAPlayer3.Tx.Gauge_Base_Norma[_4pGaugeIDX];
|
||||||
|
CTexture killzoneTexture = TJAPlayer3.Tx.Gauge_Killzone[_4pGaugeIDX];
|
||||||
|
|
||||||
|
CTexture flashTexture = yellowTexture;
|
||||||
|
CTexture clearIcon = (_4pGaugeIDX == 2)
|
||||||
|
? null
|
||||||
|
: (gaugeType != EGaugeType.NORMAL)
|
||||||
|
? TJAPlayer3.Tx.Gauge_Killzone[0]
|
||||||
|
: TJAPlayer3.Tx.Gauge[0];
|
||||||
|
CTexture soulLetter = TJAPlayer3.Tx.Gauge_Soul;
|
||||||
|
CTexture soulFlame = TJAPlayer3.Tx.Gauge_Soul_Fire;
|
||||||
|
|
||||||
|
tDrawCompleteGauge(baseTexture, baseNormaTexture, flashTexture, fillTexture, yellowTexture, rainbowTextureArr, killzoneTexture, clearIcon, soulLetter, soulFlame, gauge_x, gauge_y, opacity, rainbowTextureIndex, soulFlameIndex, difficulty, level, currentPercent, gaugeType, scale, scale, text_x, text_y, perfectHits, totalHits, soul_x, soul_y, fire_x, fire_y);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void UNSAFE_DrawResultGaugeFast(int player, int shiftPos, int pos, int segmentsDisplayed, int rainbowTextureIndex, int soulFlameIndex)
|
||||||
|
{
|
||||||
|
var chara = TJAPlayer3.Tx.Characters[TJAPlayer3.SaveFileInstances[TJAPlayer3.GetActualPlayer(player)].data.Character];
|
||||||
|
CDTX[] dtxs =
|
||||||
|
{
|
||||||
|
TJAPlayer3.DTX,
|
||||||
|
TJAPlayer3.DTX_2P,
|
||||||
|
TJAPlayer3.DTX_3P,
|
||||||
|
TJAPlayer3.DTX_4P,
|
||||||
|
TJAPlayer3.DTX_5P
|
||||||
|
};
|
||||||
|
|
||||||
|
// Set box
|
||||||
|
GaugeBox = new int[] { TJAPlayer3.Skin.Result_Gauge_Rect[0], TJAPlayer3.Skin.Result_Gauge_Rect[1], TJAPlayer3.Skin.Result_Gauge_Rect[2], TJAPlayer3.Skin.Result_Gauge_Rect[3] };
|
||||||
|
|
||||||
|
// Total hits and perfect hits
|
||||||
|
int perfectHits = TJAPlayer3.stage演奏ドラム画面.CChartScore[player].nGreat;
|
||||||
|
int totalHits = dtxs[player].nノーツ数[3];
|
||||||
|
|
||||||
|
// Gauge type
|
||||||
|
EGaugeType gaugeType = tGetGaugeTypeEnum(chara.effect.Gauge);
|
||||||
|
|
||||||
|
// Current percent
|
||||||
|
float currentPercent = segmentsDisplayed * 2f;
|
||||||
|
|
||||||
|
// Scale x
|
||||||
|
float scale_x = 1.0f;
|
||||||
|
if (TJAPlayer3.ConfigIni.nPlayerCount >= 3)
|
||||||
|
{
|
||||||
|
scale_x = 0.5f;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Difficulty
|
||||||
|
int _dif = TJAPlayer3.stage選曲.n確定された曲の難易度[player];
|
||||||
|
Difficulty difficulty = (Difficulty)_dif;
|
||||||
|
int level = TJAPlayer3.stage選曲.r確定された曲.arスコア[_dif].譜面情報.nレベル[_dif];
|
||||||
|
|
||||||
|
int gauge_x;
|
||||||
|
int gauge_y;
|
||||||
|
if (TJAPlayer3.ConfigIni.nPlayerCount == 5)
|
||||||
|
{
|
||||||
|
gauge_x = TJAPlayer3.Skin.Result_Gauge_5P[0] + TJAPlayer3.Skin.Result_UIMove_5P_X[pos];
|
||||||
|
gauge_y = TJAPlayer3.Skin.Result_Gauge_5P[1] + TJAPlayer3.Skin.Result_UIMove_5P_Y[pos];
|
||||||
|
}
|
||||||
|
else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3)
|
||||||
|
{
|
||||||
|
gauge_x = TJAPlayer3.Skin.Result_Gauge_4P[0] + TJAPlayer3.Skin.Result_UIMove_4P_X[pos];
|
||||||
|
gauge_y = TJAPlayer3.Skin.Result_Gauge_4P[1] + TJAPlayer3.Skin.Result_UIMove_4P_Y[pos];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
gauge_x = TJAPlayer3.Skin.Result_Gauge_X[pos];
|
||||||
|
gauge_y = TJAPlayer3.Skin.Result_Gauge_Y[pos];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Flame and soul
|
||||||
|
int soulText_x;
|
||||||
|
int soulText_y;
|
||||||
|
int soulFire_x;
|
||||||
|
int soulFire_y;
|
||||||
|
if (TJAPlayer3.ConfigIni.nPlayerCount == 5)
|
||||||
|
{
|
||||||
|
soulText_x = TJAPlayer3.Skin.Result_Soul_Text_5P[0] + TJAPlayer3.Skin.Result_UIMove_5P_X[pos];
|
||||||
|
soulText_y = TJAPlayer3.Skin.Result_Soul_Text_5P[1] + TJAPlayer3.Skin.Result_UIMove_5P_Y[pos];
|
||||||
|
soulFire_x = TJAPlayer3.Skin.Result_Soul_Fire_5P[0] + TJAPlayer3.Skin.Result_UIMove_5P_X[pos];
|
||||||
|
soulFire_y = TJAPlayer3.Skin.Result_Soul_Fire_5P[1] + TJAPlayer3.Skin.Result_UIMove_5P_Y[pos];
|
||||||
|
}
|
||||||
|
else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3)
|
||||||
|
{
|
||||||
|
soulText_x = TJAPlayer3.Skin.Result_Soul_Text_4P[0] + TJAPlayer3.Skin.Result_UIMove_4P_X[0];
|
||||||
|
soulText_y = TJAPlayer3.Skin.Result_Soul_Text_4P[1] + TJAPlayer3.Skin.Result_UIMove_4P_Y[1];
|
||||||
|
soulFire_x = TJAPlayer3.Skin.Result_Soul_Fire_4P[0] + TJAPlayer3.Skin.Result_UIMove_4P_X[0];
|
||||||
|
soulFire_y = TJAPlayer3.Skin.Result_Soul_Fire_4P[1] + TJAPlayer3.Skin.Result_UIMove_4P_Y[1];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
soulText_x = TJAPlayer3.Skin.Result_Soul_Text_X[pos];
|
||||||
|
soulText_y = TJAPlayer3.Skin.Result_Soul_Text_Y[pos];
|
||||||
|
soulFire_x = TJAPlayer3.Skin.Result_Soul_Fire_X[pos];
|
||||||
|
soulFire_y = TJAPlayer3.Skin.Result_Soul_Fire_Y[pos];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Clear text
|
||||||
|
int clearText_x;
|
||||||
|
int clearText_y;
|
||||||
|
if (TJAPlayer3.ConfigIni.nPlayerCount == 5)
|
||||||
|
{
|
||||||
|
clearText_x = TJAPlayer3.Skin.Result_Gauge_ClearText_5P[0] + TJAPlayer3.Skin.Result_UIMove_5P_X[0];
|
||||||
|
clearText_y = TJAPlayer3.Skin.Result_Gauge_ClearText_5P[1] + TJAPlayer3.Skin.Result_UIMove_5P_Y[1];
|
||||||
|
}
|
||||||
|
else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3)
|
||||||
|
{
|
||||||
|
clearText_x = TJAPlayer3.Skin.Result_Gauge_ClearText_4P[0] + TJAPlayer3.Skin.Result_UIMove_4P_X[0];
|
||||||
|
clearText_y = TJAPlayer3.Skin.Result_Gauge_ClearText_4P[1] + TJAPlayer3.Skin.Result_UIMove_4P_Y[1];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
clearText_x = TJAPlayer3.Skin.Result_Gauge_ClearText_X[pos];
|
||||||
|
clearText_y = TJAPlayer3.Skin.Result_Gauge_ClearText_Y[pos];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Textures
|
||||||
|
int _usedGauge = shiftPos;
|
||||||
|
CTexture baseTexture = TJAPlayer3.Tx.Result_Gauge_Base[_usedGauge];
|
||||||
|
CTexture fillTexture = TJAPlayer3.Tx.Result_Gauge[_usedGauge];
|
||||||
|
|
||||||
|
CTexture[] rainbowTextureArr = TJAPlayer3.Tx.Result_Rainbow;
|
||||||
|
CTexture yellowTexture = TJAPlayer3.Tx.Result_Gauge_Clear;
|
||||||
|
CTexture baseNormaTexture = TJAPlayer3.Tx.Result_Gauge_Clear_Base;
|
||||||
|
CTexture killzoneTexture = TJAPlayer3.Tx.Result_Gauge_Killzone;
|
||||||
|
|
||||||
|
CTexture flashTexture = null;
|
||||||
|
CTexture clearIcon = TJAPlayer3.Tx.Result_Gauge[0];
|
||||||
|
CTexture soulLetter = TJAPlayer3.Tx.Result_Soul_Text;
|
||||||
|
CTexture soulFlame = TJAPlayer3.Tx.Result_Soul_Fire;
|
||||||
|
|
||||||
|
|
||||||
|
tDrawCompleteGauge(baseTexture, baseNormaTexture, flashTexture, fillTexture, yellowTexture, rainbowTextureArr, killzoneTexture, clearIcon, soulLetter, soulFlame, gauge_x, gauge_y, 0, rainbowTextureIndex, soulFlameIndex, difficulty, level, currentPercent, gaugeType, scale_x, 1f, clearText_x, clearText_y, perfectHits, totalHits, soulText_x, soulText_y, soulFire_x, soulFire_y);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private static int[] GaugeBox = { TJAPlayer3.Skin.Game_Gauge_Rect[0], TJAPlayer3.Skin.Game_Gauge_Rect[1], TJAPlayer3.Skin.Game_Gauge_Rect[2], TJAPlayer3.Skin.Game_Gauge_Rect[3] };
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
@ -575,6 +575,21 @@ namespace TJAPlayer3
|
|||||||
Gauge_Line[0] = TxC(GAME + GAUGE + @"1P_Line.png");
|
Gauge_Line[0] = TxC(GAME + GAUGE + @"1P_Line.png");
|
||||||
Gauge_Line[1] = TxC(GAME + GAUGE + @"2P_Line.png");
|
Gauge_Line[1] = TxC(GAME + GAUGE + @"2P_Line.png");
|
||||||
|
|
||||||
|
Gauge_Clear = new CTexture[3];
|
||||||
|
Gauge_Clear[0] = TxC(GAME + GAUGE + @"Clear.png");
|
||||||
|
Gauge_Clear[1] = TxC(GAME + GAUGE + @"Clear_2PGauge.png");
|
||||||
|
Gauge_Clear[2] = TxC(GAME + GAUGE + @"Clear_4PGauge.png");
|
||||||
|
|
||||||
|
Gauge_Base_Norma = new CTexture[3];
|
||||||
|
Gauge_Base_Norma[0] = TxC(GAME + GAUGE + @"Norma_Base.png");
|
||||||
|
Gauge_Base_Norma[1] = TxC(GAME + GAUGE + @"Norma_Base_2PGauge.png");
|
||||||
|
Gauge_Base_Norma[2] = TxC(GAME + GAUGE + @"Norma_Base_4PGauge.png");
|
||||||
|
|
||||||
|
Gauge_Killzone = new CTexture[3];
|
||||||
|
Gauge_Killzone[0] = TxC(GAME + GAUGE + @"Killzone.png");
|
||||||
|
Gauge_Killzone[1] = TxC(GAME + GAUGE + @"Killzone_2PGauge.png");
|
||||||
|
Gauge_Killzone[2] = TxC(GAME + GAUGE + @"Killzone_4PGauge.png");
|
||||||
|
|
||||||
TJAPlayer3.Skin.Game_Gauge_Rainbow_Ptn = TJAPlayer3.t連番画像の枚数を数える(CSkin.Path(BASE + GAME + GAUGE + @"Rainbow\"));
|
TJAPlayer3.Skin.Game_Gauge_Rainbow_Ptn = TJAPlayer3.t連番画像の枚数を数える(CSkin.Path(BASE + GAME + GAUGE + @"Rainbow\"));
|
||||||
if (TJAPlayer3.Skin.Game_Gauge_Rainbow_Ptn != 0)
|
if (TJAPlayer3.Skin.Game_Gauge_Rainbow_Ptn != 0)
|
||||||
{
|
{
|
||||||
@ -585,6 +600,28 @@ namespace TJAPlayer3
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TJAPlayer3.Skin.Game_Gauge_Rainbow_Flat_Ptn = TJAPlayer3.t連番画像の枚数を数える(CSkin.Path(BASE + GAME + GAUGE + @"Rainbow_Flat\"));
|
||||||
|
if (TJAPlayer3.Skin.Game_Gauge_Rainbow_Flat_Ptn != 0)
|
||||||
|
{
|
||||||
|
Gauge_Rainbow_Flat = new CTexture[TJAPlayer3.Skin.Game_Gauge_Rainbow_Flat_Ptn];
|
||||||
|
for (int i = 0; i < TJAPlayer3.Skin.Game_Gauge_Rainbow_Flat_Ptn; i++)
|
||||||
|
{
|
||||||
|
Gauge_Rainbow_Flat[i] = TxC(GAME + GAUGE + @"Rainbow_Flat\" + i.ToString() + ".png");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
TJAPlayer3.Skin.Game_Gauge_Rainbow_2PGauge_Ptn = TJAPlayer3.t連番画像の枚数を数える(CSkin.Path(BASE + GAME + GAUGE + @"Rainbow_2PGauge\"));
|
||||||
|
if (TJAPlayer3.Skin.Game_Gauge_Rainbow_2PGauge_Ptn != 0)
|
||||||
|
{
|
||||||
|
Gauge_Rainbow_2PGauge = new CTexture[TJAPlayer3.Skin.Game_Gauge_Rainbow_2PGauge_Ptn];
|
||||||
|
for (int i = 0; i < TJAPlayer3.Skin.Game_Gauge_Rainbow_2PGauge_Ptn; i++)
|
||||||
|
{
|
||||||
|
Gauge_Rainbow_2PGauge[i] = TxC(GAME + GAUGE + @"Rainbow_2PGauge\" + i.ToString() + ".png");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Dan
|
||||||
|
|
||||||
TJAPlayer3.Skin.Game_Gauge_Dan_Rainbow_Ptn = TJAPlayer3.t連番画像の枚数を数える(CSkin.Path(BASE + GAME + DANC + @"Rainbow\"));
|
TJAPlayer3.Skin.Game_Gauge_Dan_Rainbow_Ptn = TJAPlayer3.t連番画像の枚数を数える(CSkin.Path(BASE + GAME + DANC + @"Rainbow\"));
|
||||||
if (TJAPlayer3.Skin.Game_Gauge_Dan_Rainbow_Ptn != 0)
|
if (TJAPlayer3.Skin.Game_Gauge_Dan_Rainbow_Ptn != 0)
|
||||||
{
|
{
|
||||||
@ -1007,6 +1044,11 @@ namespace TJAPlayer3
|
|||||||
Result_Gauge[4] = TxC(RESULT + @"Gauge_5.png");
|
Result_Gauge[4] = TxC(RESULT + @"Gauge_5.png");
|
||||||
Result_Gauge_Base[4] = TxC(RESULT + @"Gauge_Base_5.png");
|
Result_Gauge_Base[4] = TxC(RESULT + @"Gauge_Base_5.png");
|
||||||
|
|
||||||
|
Result_Gauge_Frame = TxC(RESULT + @"Gauge_Frame.png");
|
||||||
|
Result_Gauge_Clear = TxC(RESULT + @"Gauge_Clear.png");
|
||||||
|
Result_Gauge_Clear_Base = TxC(RESULT + @"Gauge_Clear_Base.png");
|
||||||
|
Result_Gauge_Killzone = TxC(RESULT + @"Gauge_Killzone.png");
|
||||||
|
|
||||||
Result_Header = TxC(RESULT + @"Header.png");
|
Result_Header = TxC(RESULT + @"Header.png");
|
||||||
Result_Number = TxC(RESULT + @"Number.png");
|
Result_Number = TxC(RESULT + @"Number.png");
|
||||||
Result_Panel = TxC(RESULT + @"Panel.png");
|
Result_Panel = TxC(RESULT + @"Panel.png");
|
||||||
@ -2278,8 +2320,13 @@ namespace TJAPlayer3
|
|||||||
#region ゲージ
|
#region ゲージ
|
||||||
public CTexture[] Gauge,
|
public CTexture[] Gauge,
|
||||||
Gauge_Base,
|
Gauge_Base,
|
||||||
|
Gauge_Base_Norma,
|
||||||
Gauge_Line,
|
Gauge_Line,
|
||||||
Gauge_Rainbow,
|
Gauge_Rainbow,
|
||||||
|
Gauge_Rainbow_2PGauge,
|
||||||
|
Gauge_Rainbow_Flat,
|
||||||
|
Gauge_Clear,
|
||||||
|
Gauge_Killzone,
|
||||||
Gauge_Soul_Explosion;
|
Gauge_Soul_Explosion;
|
||||||
public CTexture Gauge_Soul,
|
public CTexture Gauge_Soul,
|
||||||
Gauge_Flash,
|
Gauge_Flash,
|
||||||
@ -2471,6 +2518,10 @@ namespace TJAPlayer3
|
|||||||
//Result_Cloud,
|
//Result_Cloud,
|
||||||
Result_Flower,
|
Result_Flower,
|
||||||
Result_Shine,
|
Result_Shine,
|
||||||
|
Result_Gauge_Frame,
|
||||||
|
Result_Gauge_Clear,
|
||||||
|
Result_Gauge_Clear_Base,
|
||||||
|
Result_Gauge_Killzone,
|
||||||
|
|
||||||
Result_Dan;
|
Result_Dan;
|
||||||
|
|
||||||
|
@ -110,19 +110,17 @@ namespace TJAPlayer3
|
|||||||
{
|
{
|
||||||
//ダメージ値の計算は太鼓の達人譜面Wikiのものを参考にしました。
|
//ダメージ値の計算は太鼓の達人譜面Wikiのものを参考にしました。
|
||||||
|
|
||||||
for (int i = 0; i < 5; i++)
|
|
||||||
{
|
{
|
||||||
var chara = TJAPlayer3.Tx.Characters[TJAPlayer3.SaveFileInstances[TJAPlayer3.GetActualPlayer(nPlayer)].data.Character];
|
var chara = TJAPlayer3.Tx.Characters[TJAPlayer3.SaveFileInstances[TJAPlayer3.GetActualPlayer(nPlayer)].data.Character];
|
||||||
switch(chara.effect.Gauge)
|
switch (chara.effect.Gauge)
|
||||||
{
|
{
|
||||||
|
default:
|
||||||
case "Normal":
|
case "Normal":
|
||||||
this.db現在のゲージ値[i] = 0;
|
this.db現在のゲージ値[nPlayer] = 0;
|
||||||
break;
|
break;
|
||||||
case "Hard":
|
case "Hard":
|
||||||
this.db現在のゲージ値[i] = 100;
|
|
||||||
break;
|
|
||||||
case "Extreme":
|
case "Extreme":
|
||||||
this.db現在のゲージ値[i] = 100;
|
this.db現在のゲージ値[nPlayer] = 100;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -166,25 +164,10 @@ namespace TJAPlayer3
|
|||||||
|
|
||||||
case 9:
|
case 9:
|
||||||
case 10:
|
case 10:
|
||||||
|
default:
|
||||||
gaugeRate = this.fGaugeMaxRate[2];
|
gaugeRate = this.fGaugeMaxRate[2];
|
||||||
dbDamageRate = 2.0f;
|
dbDamageRate = 2.0f;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 11:
|
|
||||||
gaugeRate = this.fGaugeMaxRate[3];
|
|
||||||
dbDamageRate = 2.2f;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 12:
|
|
||||||
gaugeRate = this.fGaugeMaxRate[4];
|
|
||||||
dbDamageRate = 2.4f;
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
gaugeRate = this.fGaugeMaxRate[5];
|
|
||||||
dbDamageRate = 2.6f;
|
|
||||||
break;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#region [(Unbloated) Gauge max combo values]
|
#region [(Unbloated) Gauge max combo values]
|
||||||
@ -204,28 +187,10 @@ namespace TJAPlayer3
|
|||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region [Change the weights depending on the choosen difficulty (More lenient for easier diffs, set to 0 for Tower charts)]
|
|
||||||
|
|
||||||
float multiplicationFactor = 1f;
|
float multiplicationFactor = 1f;
|
||||||
|
if (nanidou == (int)Difficulty.Tower)
|
||||||
if (nanidou <= (int)Difficulty.Edit)
|
|
||||||
{
|
|
||||||
float[] factors =
|
|
||||||
{
|
|
||||||
1.6f,
|
|
||||||
1.33f,
|
|
||||||
1.14f,
|
|
||||||
1f,
|
|
||||||
1f,
|
|
||||||
};
|
|
||||||
|
|
||||||
multiplicationFactor = factors[nanidou];
|
|
||||||
}
|
|
||||||
else if (nanidou == (int)Difficulty.Tower)
|
|
||||||
multiplicationFactor = 0f;
|
multiplicationFactor = 0f;
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
double nGaugeRankValue = 0D;
|
double nGaugeRankValue = 0D;
|
||||||
double[] nGaugeRankValue_branch = new double[] { 0D, 0D, 0D };
|
double[] nGaugeRankValue_branch = new double[] { 0D, 0D, 0D };
|
||||||
|
|
||||||
@ -346,14 +311,15 @@ namespace TJAPlayer3
|
|||||||
var chara = TJAPlayer3.Tx.Characters[TJAPlayer3.SaveFileInstances[TJAPlayer3.GetActualPlayer(nPlayer)].data.Character];
|
var chara = TJAPlayer3.Tx.Characters[TJAPlayer3.SaveFileInstances[TJAPlayer3.GetActualPlayer(nPlayer)].data.Character];
|
||||||
switch (chara.effect.Gauge)
|
switch (chara.effect.Gauge)
|
||||||
{
|
{
|
||||||
|
default:
|
||||||
case "Normal":
|
case "Normal":
|
||||||
dbゲージ増加量[i][nPlayer] = increase[i];
|
dbゲージ増加量[i][nPlayer] = increase[i];
|
||||||
break;
|
break;
|
||||||
case "Hard":
|
case "Hard":
|
||||||
dbゲージ増加量[i][nPlayer] = increase[i] / 2.0f;
|
dbゲージ増加量[i][nPlayer] = increase[i] * HGaugeMethods.HardGaugeFillRatio;
|
||||||
break;
|
break;
|
||||||
case "Extreme":
|
case "Extreme":
|
||||||
dbゲージ増加量[i][nPlayer] = increase[i] / 4.0f;
|
dbゲージ増加量[i][nPlayer] = increase[i] * HGaugeMethods.ExtremeGaugeFillRatio;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -362,20 +328,21 @@ namespace TJAPlayer3
|
|||||||
var chara = TJAPlayer3.Tx.Characters[TJAPlayer3.SaveFileInstances[TJAPlayer3.GetActualPlayer(nPlayer)].data.Character];
|
var chara = TJAPlayer3.Tx.Characters[TJAPlayer3.SaveFileInstances[TJAPlayer3.GetActualPlayer(nPlayer)].data.Character];
|
||||||
switch (chara.effect.Gauge)
|
switch (chara.effect.Gauge)
|
||||||
{
|
{
|
||||||
|
default:
|
||||||
case "Normal":
|
case "Normal":
|
||||||
dbゲージ増加量_Branch[i, 0][nPlayer] = increaseBranch[i, 0];
|
dbゲージ増加量_Branch[i, 0][nPlayer] = increaseBranch[i, 0];
|
||||||
dbゲージ増加量_Branch[i, 1][nPlayer] = increaseBranch[i, 1];
|
dbゲージ増加量_Branch[i, 1][nPlayer] = increaseBranch[i, 1];
|
||||||
dbゲージ増加量_Branch[i, 2][nPlayer] = increaseBranch[i, 2];
|
dbゲージ増加量_Branch[i, 2][nPlayer] = increaseBranch[i, 2];
|
||||||
break;
|
break;
|
||||||
case "Hard":
|
case "Hard":
|
||||||
dbゲージ増加量_Branch[i, 0][nPlayer] = increaseBranch[i, 0] / 2.0f;
|
dbゲージ増加量_Branch[i, 0][nPlayer] = increaseBranch[i, 0] * HGaugeMethods.HardGaugeFillRatio;
|
||||||
dbゲージ増加量_Branch[i, 1][nPlayer] = increaseBranch[i, 1] / 2.0f;
|
dbゲージ増加量_Branch[i, 1][nPlayer] = increaseBranch[i, 1] * HGaugeMethods.HardGaugeFillRatio;
|
||||||
dbゲージ増加量_Branch[i, 2][nPlayer] = increaseBranch[i, 2] / 2.0f;
|
dbゲージ増加量_Branch[i, 2][nPlayer] = increaseBranch[i, 2] * HGaugeMethods.HardGaugeFillRatio;
|
||||||
break;
|
break;
|
||||||
case "Extreme":
|
case "Extreme":
|
||||||
dbゲージ増加量_Branch[i, 0][nPlayer] = increaseBranch[i, 0] / 4.0f;
|
dbゲージ増加量_Branch[i, 0][nPlayer] = increaseBranch[i, 0] * HGaugeMethods.ExtremeGaugeFillRatio;
|
||||||
dbゲージ増加量_Branch[i, 1][nPlayer] = increaseBranch[i, 1] / 4.0f;
|
dbゲージ増加量_Branch[i, 1][nPlayer] = increaseBranch[i, 1] * HGaugeMethods.ExtremeGaugeFillRatio;
|
||||||
dbゲージ増加量_Branch[i, 2][nPlayer] = increaseBranch[i, 2] / 4.0f;
|
dbゲージ増加量_Branch[i, 2][nPlayer] = increaseBranch[i, 2] * HGaugeMethods.ExtremeGaugeFillRatio;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -422,7 +389,12 @@ namespace TJAPlayer3
|
|||||||
|
|
||||||
public void MineDamage(int nPlayer)
|
public void MineDamage(int nPlayer)
|
||||||
{
|
{
|
||||||
this.db現在のゲージ値[nPlayer] = Math.Max(0, this.db現在のゲージ値[nPlayer] - 4);
|
this.db現在のゲージ値[nPlayer] = Math.Max(0, this.db現在のゲージ値[nPlayer] - HGaugeMethods.BombDamage);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void FuseDamage(int nPlayer)
|
||||||
|
{
|
||||||
|
this.db現在のゲージ値[nPlayer] = Math.Max(0, this.db現在のゲージ値[nPlayer] - HGaugeMethods.FuserollDamage);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Damage(E楽器パート screenmode, E楽器パート part, E判定 e今回の判定, int nPlayer)
|
public void Damage(E楽器パート screenmode, E楽器パート part, E判定 e今回の判定, int nPlayer)
|
||||||
@ -471,13 +443,17 @@ namespace TJAPlayer3
|
|||||||
}
|
}
|
||||||
|
|
||||||
var chara = TJAPlayer3.Tx.Characters[TJAPlayer3.SaveFileInstances[TJAPlayer3.GetActualPlayer(nPlayer)].data.Character];
|
var chara = TJAPlayer3.Tx.Characters[TJAPlayer3.SaveFileInstances[TJAPlayer3.GetActualPlayer(nPlayer)].data.Character];
|
||||||
|
|
||||||
|
int nanidou = TJAPlayer3.stage選曲.n確定された曲の難易度[nPlayer];
|
||||||
|
int level = this.DTX[nPlayer].LEVELtaiko[nanidou];
|
||||||
|
|
||||||
switch (chara.effect.Gauge)
|
switch (chara.effect.Gauge)
|
||||||
{
|
{
|
||||||
case "Hard":
|
case "Hard":
|
||||||
fDamage = -25;
|
fDamage = -HGaugeMethods.tHardGaugeGetDamage((Difficulty)nanidou, level);
|
||||||
break;
|
break;
|
||||||
case "Extreme":
|
case "Extreme":
|
||||||
fDamage = -50;
|
fDamage = -HGaugeMethods.tExtremeGaugeGetDamage((Difficulty)nanidou, level);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -496,6 +496,7 @@ namespace TJAPlayer3
|
|||||||
var chara = TJAPlayer3.Tx.Characters[TJAPlayer3.SaveFileInstances[TJAPlayer3.GetActualPlayer(player)].data.Character];
|
var chara = TJAPlayer3.Tx.Characters[TJAPlayer3.SaveFileInstances[TJAPlayer3.GetActualPlayer(player)].data.Character];
|
||||||
switch (chara.effect.Gauge)
|
switch (chara.effect.Gauge)
|
||||||
{
|
{
|
||||||
|
default:
|
||||||
case "Normal":
|
case "Normal":
|
||||||
bIsAlreadyCleared[player] = false;
|
bIsAlreadyCleared[player] = false;
|
||||||
break;
|
break;
|
||||||
@ -905,6 +906,7 @@ namespace TJAPlayer3
|
|||||||
public int[] Chara_MissCount;
|
public int[] Chara_MissCount;
|
||||||
protected E連打State eRollState;
|
protected E連打State eRollState;
|
||||||
protected bool[] ifp = { false, false, false, false, false };
|
protected bool[] ifp = { false, false, false, false, false };
|
||||||
|
protected bool[] isDeniedPlaying = { false, false, false, false, false };
|
||||||
|
|
||||||
protected int nタイマ番号;
|
protected int nタイマ番号;
|
||||||
protected int n現在の音符の顔番号;
|
protected int n現在の音符の顔番号;
|
||||||
@ -1920,17 +1922,7 @@ namespace TJAPlayer3
|
|||||||
}
|
}
|
||||||
|
|
||||||
var chara = TJAPlayer3.Tx.Characters[TJAPlayer3.SaveFileInstances[TJAPlayer3.GetActualPlayer(nPlayer)].data.Character];
|
var chara = TJAPlayer3.Tx.Characters[TJAPlayer3.SaveFileInstances[TJAPlayer3.GetActualPlayer(nPlayer)].data.Character];
|
||||||
bool cleared = false;
|
bool cleared = HGaugeMethods.UNSAFE_FastNormaCheck(nPlayer);
|
||||||
switch (chara.effect.Gauge)
|
|
||||||
{
|
|
||||||
case "Normal":
|
|
||||||
cleared = (int)actGauge.db現在のゲージ値[nPlayer] >= 80;
|
|
||||||
break;
|
|
||||||
case "Hard":
|
|
||||||
case "Extreme":
|
|
||||||
cleared = (int)actGauge.db現在のゲージ値[nPlayer] > 0;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (eJudgeResult != E判定.Poor && eJudgeResult != E判定.Miss)
|
if (eJudgeResult != E判定.Poor && eJudgeResult != E判定.Miss)
|
||||||
{
|
{
|
||||||
@ -1941,7 +1933,7 @@ namespace TJAPlayer3
|
|||||||
|
|
||||||
int Character = this.actChara.iCurrentCharacter[nPlayer];
|
int Character = this.actChara.iCurrentCharacter[nPlayer];
|
||||||
|
|
||||||
if ((int)actGauge.db現在のゲージ値[nPlayer] >= 100 && this.bIsAlreadyMaxed[nPlayer] == false)
|
if (HGaugeMethods.UNSAFE_IsRainbow(nPlayer) && this.bIsAlreadyMaxed[nPlayer] == false)
|
||||||
{
|
{
|
||||||
if(TJAPlayer3.Skin.Characters_Become_Maxed_Ptn[Character] != 0 && actChara.CharaAction_Balloon_Delay[nPlayer].b終了値に達した)
|
if(TJAPlayer3.Skin.Characters_Become_Maxed_Ptn[Character] != 0 && actChara.CharaAction_Balloon_Delay[nPlayer].b終了値に達した)
|
||||||
{
|
{
|
||||||
@ -1964,7 +1956,7 @@ namespace TJAPlayer3
|
|||||||
{
|
{
|
||||||
// ランナー(みすったやつ)
|
// ランナー(みすったやつ)
|
||||||
this.actRunner.Start(nPlayer, true, pChip);
|
this.actRunner.Start(nPlayer, true, pChip);
|
||||||
if ((int)actGauge.db現在のゲージ値[nPlayer] < 100 && this.bIsAlreadyMaxed[nPlayer] == true)
|
if (!HGaugeMethods.UNSAFE_IsRainbow(nPlayer) && this.bIsAlreadyMaxed[nPlayer] == true)
|
||||||
{
|
{
|
||||||
this.bIsAlreadyMaxed[nPlayer] = false;
|
this.bIsAlreadyMaxed[nPlayer] = false;
|
||||||
}
|
}
|
||||||
@ -1978,9 +1970,22 @@ namespace TJAPlayer3
|
|||||||
case "Hard":
|
case "Hard":
|
||||||
case "Extreme":
|
case "Extreme":
|
||||||
{
|
{
|
||||||
CSound管理.rc演奏用タイマ.t一時停止();
|
|
||||||
TJAPlayer3.DTX.t全チップの再生停止();
|
|
||||||
ifp[nPlayer] = true;
|
ifp[nPlayer] = true;
|
||||||
|
isDeniedPlaying[nPlayer] = true; // Prevents the player to ever be able to hit the drum, without freezing the whole game
|
||||||
|
|
||||||
|
bool allDeniedPlaying = true;
|
||||||
|
for (int p = 0; p < TJAPlayer3.ConfigIni.nPlayerCount; p++)
|
||||||
|
{
|
||||||
|
if (!isDeniedPlaying[p])
|
||||||
|
{
|
||||||
|
allDeniedPlaying = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (allDeniedPlaying) TJAPlayer3.DTX.t全チップの再生停止(); // Stop playing song
|
||||||
|
|
||||||
|
// Stop timer : Pauses the whole game (to remove once is denied playing will work)
|
||||||
|
//CSound管理.rc演奏用タイマ.t一時停止();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -2304,7 +2309,7 @@ namespace TJAPlayer3
|
|||||||
{
|
{
|
||||||
if (TJAPlayer3.Skin.Characters_10Combo_Ptn[Character] != 0 && this.actChara.eNowAnime[nPlayer] != CAct演奏Drumsキャラクター.Anime.Combo10 && actChara.CharaAction_Balloon_Delay[nPlayer].b終了値に達した)
|
if (TJAPlayer3.Skin.Characters_10Combo_Ptn[Character] != 0 && this.actChara.eNowAnime[nPlayer] != CAct演奏Drumsキャラクター.Anime.Combo10 && actChara.CharaAction_Balloon_Delay[nPlayer].b終了値に達した)
|
||||||
{
|
{
|
||||||
if (TJAPlayer3.stage演奏ドラム画面.actGauge.db現在のゲージ値[nPlayer] < 100)
|
if (!HGaugeMethods.UNSAFE_IsRainbow(nPlayer))
|
||||||
{
|
{
|
||||||
// 魂ゲージMAXではない
|
// 魂ゲージMAXではない
|
||||||
// ジャンプ_ノーマル
|
// ジャンプ_ノーマル
|
||||||
@ -2313,7 +2318,7 @@ namespace TJAPlayer3
|
|||||||
}
|
}
|
||||||
if (TJAPlayer3.Skin.Characters_10Combo_Maxed_Ptn[Character] != 0 && this.actChara.eNowAnime[nPlayer] != CAct演奏Drumsキャラクター.Anime.Combo10_Max && actChara.CharaAction_Balloon_Delay[nPlayer].b終了値に達した)
|
if (TJAPlayer3.Skin.Characters_10Combo_Maxed_Ptn[Character] != 0 && this.actChara.eNowAnime[nPlayer] != CAct演奏Drumsキャラクター.Anime.Combo10_Max && actChara.CharaAction_Balloon_Delay[nPlayer].b終了値に達した)
|
||||||
{
|
{
|
||||||
if (TJAPlayer3.stage演奏ドラム画面.actGauge.db現在のゲージ値[nPlayer] >= 100)
|
if (HGaugeMethods.UNSAFE_IsRainbow(nPlayer))
|
||||||
{
|
{
|
||||||
// 魂ゲージMAX
|
// 魂ゲージMAX
|
||||||
// ジャンプ_MAX
|
// ジャンプ_MAX
|
||||||
@ -3904,7 +3909,7 @@ namespace TJAPlayer3
|
|||||||
{
|
{
|
||||||
if (TJAPlayer3.Skin.Characters_GoGoStart_Ptn[Character] != 0 && actChara.CharaAction_Balloon_Delay[nPlayer].b終了値に達した)
|
if (TJAPlayer3.Skin.Characters_GoGoStart_Ptn[Character] != 0 && actChara.CharaAction_Balloon_Delay[nPlayer].b終了値に達した)
|
||||||
{
|
{
|
||||||
if (TJAPlayer3.stage演奏ドラム画面.actGauge.db現在のゲージ値[nPlayer] < 100)
|
if (!HGaugeMethods.UNSAFE_IsRainbow(nPlayer))
|
||||||
{
|
{
|
||||||
// 魂ゲージMAXではない
|
// 魂ゲージMAXではない
|
||||||
// ゴーゴースタート_ノーマル
|
// ゴーゴースタート_ノーマル
|
||||||
@ -3914,7 +3919,7 @@ namespace TJAPlayer3
|
|||||||
}
|
}
|
||||||
if (TJAPlayer3.Skin.Characters_GoGoStart_Maxed_Ptn[Character] != 0 && actChara.CharaAction_Balloon_Delay[nPlayer].b終了値に達した)
|
if (TJAPlayer3.Skin.Characters_GoGoStart_Maxed_Ptn[Character] != 0 && actChara.CharaAction_Balloon_Delay[nPlayer].b終了値に達した)
|
||||||
{
|
{
|
||||||
if (TJAPlayer3.stage演奏ドラム画面.actGauge.db現在のゲージ値[nPlayer] >= 100)
|
if (HGaugeMethods.UNSAFE_IsRainbow(nPlayer))
|
||||||
{
|
{
|
||||||
// 魂ゲージMAX
|
// 魂ゲージMAX
|
||||||
// ゴーゴースタート_MAX
|
// ゴーゴースタート_MAX
|
||||||
@ -5055,6 +5060,7 @@ namespace TJAPlayer3
|
|||||||
JPOSCROLLX[i] = 0;
|
JPOSCROLLX[i] = 0;
|
||||||
JPOSCROLLY[i] = 0;
|
JPOSCROLLY[i] = 0;
|
||||||
ifp[i] = false;
|
ifp[i] = false;
|
||||||
|
isDeniedPlaying[i] = false;
|
||||||
|
|
||||||
TJAPlayer3.ConfigIni.nGameType[i] = eFirstGameType[i];
|
TJAPlayer3.ConfigIni.nGameType[i] = eFirstGameType[i];
|
||||||
bSplitLane[i] = false;
|
bSplitLane[i] = false;
|
||||||
|
@ -55,7 +55,7 @@ namespace TJAPlayer3
|
|||||||
TJAPlayer3.act文字コンソール.tPrint(0, 10, C文字コンソール.Eフォント種別.白, Math.Sin((float)this.ctMob.n現在の値 * (Math.PI / 180)).ToString());
|
TJAPlayer3.act文字コンソール.tPrint(0, 10, C文字コンソール.Eフォント種別.白, Math.Sin((float)this.ctMob.n現在の値 * (Math.PI / 180)).ToString());
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (TJAPlayer3.stage演奏ドラム画面.actGauge.db現在のゲージ値[0] >= 100)
|
if (HGaugeMethods.UNSAFE_IsRainbow(0))
|
||||||
{
|
{
|
||||||
|
|
||||||
if (!TJAPlayer3.stage演奏ドラム画面.bPAUSE) nNowMobCounter += (Math.Abs((float)TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM[0] / 60.0f) * (float)TJAPlayer3.FPS.DeltaTime) * 180 / nMobBeat;
|
if (!TJAPlayer3.stage演奏ドラム画面.bPAUSE) nNowMobCounter += (Math.Abs((float)TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM[0] / 60.0f) * (float)TJAPlayer3.FPS.DeltaTime) * 180 / nMobBeat;
|
||||||
|
@ -170,84 +170,101 @@ namespace TJAPlayer3
|
|||||||
if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Tower || TJAPlayer3.ConfigIni.bTokkunMode)
|
if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Tower || TJAPlayer3.ConfigIni.bTokkunMode)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
float scale = 1.0f;
|
|
||||||
if (TJAPlayer3.ConfigIni.bAIBattleMode)
|
if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Dan)
|
||||||
{
|
{
|
||||||
scale = 0.8f;
|
#region [Regular gauges]
|
||||||
|
|
||||||
|
// Flash opacity
|
||||||
|
int Opacity = 0;
|
||||||
|
if (this.ctGaugeFlash.n現在の値 <= 365) Opacity = 0;
|
||||||
|
else if (this.ctGaugeFlash.n現在の値 <= 448) Opacity = (int)((this.ctGaugeFlash.n現在の値 - 365) / 83f * 255f);
|
||||||
|
else if (this.ctGaugeFlash.n現在の値 <= 531) Opacity = 255 - (int)((this.ctGaugeFlash.n現在の値 - 448) / 83f * 255f);
|
||||||
|
|
||||||
|
// Rainbow gauge
|
||||||
|
this.ct虹アニメ.t進行Loop();
|
||||||
|
this.ct虹透明度.t進行Loop();
|
||||||
|
int rainbowFrame = this.ct虹アニメ.n現在の値;
|
||||||
|
|
||||||
|
// Soul fire frame
|
||||||
|
this.ct炎.t進行Loop();
|
||||||
|
int soulFireFrame = this.ct炎.n現在の値;
|
||||||
|
|
||||||
|
for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)
|
||||||
|
{
|
||||||
|
if (TJAPlayer3.ConfigIni.bAIBattleMode && i == 1) continue;
|
||||||
|
HGaugeMethods.UNSAFE_DrawGaugeFast(i, Opacity, rainbowFrame, soulFireFrame);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
}
|
}
|
||||||
|
else
|
||||||
int[] gauge_x = new int[5];
|
|
||||||
int[] gauge_y = new int[5];
|
|
||||||
|
|
||||||
for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)
|
|
||||||
{
|
{
|
||||||
if (TJAPlayer3.ConfigIni.nPlayerCount == 5)
|
float scale = 1.0f;
|
||||||
|
if (TJAPlayer3.ConfigIni.bAIBattleMode)
|
||||||
{
|
{
|
||||||
gauge_x[i] = TJAPlayer3.Skin.Game_Gauge_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * i);
|
scale = 0.8f;
|
||||||
gauge_y[i] = TJAPlayer3.Skin.Game_Gauge_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * i);
|
|
||||||
}
|
|
||||||
else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3)
|
|
||||||
{
|
|
||||||
gauge_x[i] = TJAPlayer3.Skin.Game_Gauge_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * i);
|
|
||||||
gauge_y[i] = TJAPlayer3.Skin.Game_Gauge_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * i);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
gauge_x[i] = TJAPlayer3.Skin.Game_Gauge_X[i];
|
|
||||||
gauge_y[i] = TJAPlayer3.Skin.Game_Gauge_Y[i];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#region [Gauge base]
|
|
||||||
|
|
||||||
if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan)
|
|
||||||
{
|
|
||||||
if (TJAPlayer3.P1IsBlue())
|
|
||||||
{
|
|
||||||
TJAPlayer3.Tx.Gauge_Dan[4]?.t2D描画(TJAPlayer3.app.Device, gauge_x[0], gauge_y[0],
|
|
||||||
new Rectangle(TJAPlayer3.Skin.Game_Gauge_Rect[0], TJAPlayer3.Skin.Game_Gauge_Rect[1], TJAPlayer3.Skin.Game_Gauge_Rect[2], TJAPlayer3.Skin.Game_Gauge_Rect[3]));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
TJAPlayer3.Tx.Gauge_Dan[0]?.t2D描画(TJAPlayer3.app.Device, gauge_x[0], gauge_y[0],
|
|
||||||
new Rectangle(TJAPlayer3.Skin.Game_Gauge_Rect[0], TJAPlayer3.Skin.Game_Gauge_Rect[1], TJAPlayer3.Skin.Game_Gauge_Rect[2], TJAPlayer3.Skin.Game_Gauge_Rect[3]));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (TJAPlayer3.Tx.Gauge_Dan[2] != null)
|
int[] gauge_x = new int[5];
|
||||||
|
int[] gauge_y = new int[5];
|
||||||
|
|
||||||
|
for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < TJAPlayer3.DTX.Dan_C.Length; i++)
|
if (TJAPlayer3.ConfigIni.nPlayerCount == 5)
|
||||||
{
|
{
|
||||||
if (TJAPlayer3.DTX.Dan_C[i] != null)
|
gauge_x[i] = TJAPlayer3.Skin.Game_Gauge_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * i);
|
||||||
|
gauge_y[i] = TJAPlayer3.Skin.Game_Gauge_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * i);
|
||||||
|
}
|
||||||
|
else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3)
|
||||||
|
{
|
||||||
|
gauge_x[i] = TJAPlayer3.Skin.Game_Gauge_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * i);
|
||||||
|
gauge_y[i] = TJAPlayer3.Skin.Game_Gauge_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * i);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
gauge_x[i] = TJAPlayer3.Skin.Game_Gauge_X[i];
|
||||||
|
gauge_y[i] = TJAPlayer3.Skin.Game_Gauge_Y[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#region [Gauge base]
|
||||||
|
|
||||||
|
if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan)
|
||||||
|
{
|
||||||
|
if (TJAPlayer3.P1IsBlue())
|
||||||
|
{
|
||||||
|
TJAPlayer3.Tx.Gauge_Dan[4]?.t2D描画(TJAPlayer3.app.Device, gauge_x[0], gauge_y[0],
|
||||||
|
new Rectangle(TJAPlayer3.Skin.Game_Gauge_Rect[0], TJAPlayer3.Skin.Game_Gauge_Rect[1], TJAPlayer3.Skin.Game_Gauge_Rect[2], TJAPlayer3.Skin.Game_Gauge_Rect[3]));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
TJAPlayer3.Tx.Gauge_Dan[0]?.t2D描画(TJAPlayer3.app.Device, gauge_x[0], gauge_y[0],
|
||||||
|
new Rectangle(TJAPlayer3.Skin.Game_Gauge_Rect[0], TJAPlayer3.Skin.Game_Gauge_Rect[1], TJAPlayer3.Skin.Game_Gauge_Rect[2], TJAPlayer3.Skin.Game_Gauge_Rect[3]));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (TJAPlayer3.Tx.Gauge_Dan[2] != null)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < TJAPlayer3.DTX.Dan_C.Length; i++)
|
||||||
{
|
{
|
||||||
if (TJAPlayer3.DTX.Dan_C[i].GetExamType() == Exam.Type.Gauge)
|
if (TJAPlayer3.DTX.Dan_C[i] != null)
|
||||||
{
|
{
|
||||||
TJAPlayer3.Tx.Gauge_Dan[2].t2D描画(TJAPlayer3.app.Device, gauge_x[0] + (TJAPlayer3.DTX.Dan_C[i].GetValue(false) / 2 * nWidth), gauge_y[0],
|
if (TJAPlayer3.DTX.Dan_C[i].GetExamType() == Exam.Type.Gauge)
|
||||||
new Rectangle((TJAPlayer3.DTX.Dan_C[i].GetValue(false) / 2 * nWidth), 0, TJAPlayer3.Skin.Game_Gauge_Rect[2] - (TJAPlayer3.DTX.Dan_C[i].GetValue(false) / 2 * nWidth), TJAPlayer3.Skin.Game_Gauge_Rect[3]));
|
{
|
||||||
|
TJAPlayer3.Tx.Gauge_Dan[2].t2D描画(TJAPlayer3.app.Device, gauge_x[0] + (TJAPlayer3.DTX.Dan_C[i].GetValue(false) / 2 * nWidth), gauge_y[0],
|
||||||
|
new Rectangle((TJAPlayer3.DTX.Dan_C[i].GetValue(false) / 2 * nWidth), 0, TJAPlayer3.Skin.Game_Gauge_Rect[2] - (TJAPlayer3.DTX.Dan_C[i].GetValue(false) / 2 * nWidth), TJAPlayer3.Skin.Game_Gauge_Rect[3]));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (TJAPlayer3.stage演奏ドラム画面.bDoublePlay && !TJAPlayer3.ConfigIni.bAIBattleMode)
|
|
||||||
{
|
|
||||||
for (int i = 1; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)
|
|
||||||
{
|
|
||||||
int index = TJAPlayer3.ConfigIni.nPlayerCount <= 2 ? 1 : 3 + i;
|
|
||||||
TJAPlayer3.Tx.Gauge_Base[index]?.t2D描画(TJAPlayer3.app.Device, gauge_x[i], gauge_y[i],
|
|
||||||
new Rectangle(TJAPlayer3.Skin.Game_Gauge_Rect[0], TJAPlayer3.Skin.Game_Gauge_Rect[1], TJAPlayer3.Skin.Game_Gauge_Rect[2], TJAPlayer3.Skin.Game_Gauge_Rect[3]));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (TJAPlayer3.P1IsBlue())
|
|
||||||
{
|
|
||||||
TJAPlayer3.Tx.Gauge_Base[2]?.t2D描画(TJAPlayer3.app.Device, gauge_x[0], gauge_y[0],
|
|
||||||
new Rectangle(TJAPlayer3.Skin.Game_Gauge_Rect[0], TJAPlayer3.Skin.Game_Gauge_Rect[1], TJAPlayer3.Skin.Game_Gauge_Rect[2], TJAPlayer3.Skin.Game_Gauge_Rect[3]));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
int index = TJAPlayer3.ConfigIni.nPlayerCount <= 2 ? 0 : 3;
|
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region [ Gauge 1P ]
|
||||||
|
|
||||||
|
if (TJAPlayer3.Tx.Gauge[0] != null)
|
||||||
|
{
|
||||||
int x;
|
int x;
|
||||||
int y;
|
int y;
|
||||||
if (TJAPlayer3.ConfigIni.bAIBattleMode)
|
if (TJAPlayer3.ConfigIni.bAIBattleMode)
|
||||||
@ -261,354 +278,183 @@ namespace TJAPlayer3
|
|||||||
y = gauge_y[0];
|
y = gauge_y[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (TJAPlayer3.Tx.Gauge_Base[index] != null)
|
if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan)
|
||||||
{
|
{
|
||||||
TJAPlayer3.Tx.Gauge_Base[index].vc拡大縮小倍率.X = scale;
|
if (TJAPlayer3.P1IsBlue())
|
||||||
TJAPlayer3.Tx.Gauge_Base[index].vc拡大縮小倍率.Y = scale;
|
TJAPlayer3.Tx.Gauge_Dan[5]?.t2D描画(TJAPlayer3.app.Device, x, y, new Rectangle(0, 0, nRectX[0], TJAPlayer3.Skin.Game_Gauge_Rect[3]));
|
||||||
|
|
||||||
TJAPlayer3.Tx.Gauge_Base[index].t2D描画(TJAPlayer3.app.Device, x, y,
|
|
||||||
new Rectangle(TJAPlayer3.Skin.Game_Gauge_Rect[0], TJAPlayer3.Skin.Game_Gauge_Rect[1], TJAPlayer3.Skin.Game_Gauge_Rect[2], TJAPlayer3.Skin.Game_Gauge_Rect[3]));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region [ Gauge 1P ]
|
|
||||||
|
|
||||||
if( TJAPlayer3.Tx.Gauge[0] != null )
|
|
||||||
{
|
|
||||||
int x;
|
|
||||||
int y;
|
|
||||||
if (TJAPlayer3.ConfigIni.bAIBattleMode)
|
|
||||||
{
|
|
||||||
x = TJAPlayer3.Skin.Game_Gauge_X_AI;
|
|
||||||
y = TJAPlayer3.Skin.Game_Gauge_Y_AI;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
x = gauge_x[0];
|
|
||||||
y = gauge_y[0];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan)
|
|
||||||
{
|
|
||||||
if (TJAPlayer3.P1IsBlue())
|
|
||||||
TJAPlayer3.Tx.Gauge_Dan[5]?.t2D描画(TJAPlayer3.app.Device, x, y, new Rectangle(0, 0, nRectX[0], TJAPlayer3.Skin.Game_Gauge_Rect[3]));
|
|
||||||
else
|
|
||||||
TJAPlayer3.Tx.Gauge_Dan[1]?.t2D描画(TJAPlayer3.app.Device, x, y, new Rectangle(0, 0, nRectX[0], TJAPlayer3.Skin.Game_Gauge_Rect[3]));
|
|
||||||
|
|
||||||
for (int i = 0; i < TJAPlayer3.DTX.Dan_C.Length; i++)
|
|
||||||
{
|
|
||||||
if (TJAPlayer3.DTX.Dan_C[i] != null && TJAPlayer3.DTX.Dan_C[i].GetExamType() == Exam.Type.Gauge && db現在のゲージ値[0] >= TJAPlayer3.DTX.Dan_C[i].GetValue(false))
|
|
||||||
{
|
|
||||||
TJAPlayer3.Tx.Gauge_Dan[3].Opacity = 255;
|
|
||||||
TJAPlayer3.Tx.Gauge_Dan[3]?.t2D描画(TJAPlayer3.app.Device, x + (TJAPlayer3.DTX.Dan_C[i].GetValue(false) / 2 * nWidth), y, new Rectangle(0, 0, nRectX[0] - (TJAPlayer3.DTX.Dan_C[i].GetValue(false) / 2 * nWidth), TJAPlayer3.Skin.Game_Gauge_Rect[3]));
|
|
||||||
|
|
||||||
int Opacity = 0;
|
|
||||||
if (this.ctGaugeFlash.n現在の値 <= 365) Opacity = 0;
|
|
||||||
else if (this.ctGaugeFlash.n現在の値 <= 448) Opacity = (int)((this.ctGaugeFlash.n現在の値 - 365) / 83f * 255f);
|
|
||||||
else if (this.ctGaugeFlash.n現在の値 <= 531) Opacity = 255 - (int)((this.ctGaugeFlash.n現在の値 - 448) / 83f * 255f);
|
|
||||||
TJAPlayer3.Tx.Gauge_Dan[3].Opacity = Opacity;
|
|
||||||
TJAPlayer3.Tx.Gauge_Dan[3]?.t2D描画(TJAPlayer3.app.Device, x, y, new Rectangle(0, 0, TJAPlayer3.DTX.Dan_C[i].GetValue(false) / 2 * nWidth, TJAPlayer3.Skin.Game_Gauge_Rect[3]));
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (TJAPlayer3.P1IsBlue())
|
|
||||||
TJAPlayer3.Tx.Gauge[2]?.t2D描画(TJAPlayer3.app.Device, x, y, new Rectangle(0, 0, nRectX[0], TJAPlayer3.Skin.Game_Gauge_Rect[3]));
|
|
||||||
else
|
|
||||||
{
|
|
||||||
int index = TJAPlayer3.ConfigIni.nPlayerCount <= 2 ? 0 : 3;
|
|
||||||
|
|
||||||
if (TJAPlayer3.Tx.Gauge[index] != null)
|
|
||||||
{
|
|
||||||
TJAPlayer3.Tx.Gauge[index].vc拡大縮小倍率.X = scale;
|
|
||||||
TJAPlayer3.Tx.Gauge[index].vc拡大縮小倍率.Y = scale;
|
|
||||||
|
|
||||||
TJAPlayer3.Tx.Gauge[index].t2D描画(TJAPlayer3.app.Device, x, y, new Rectangle(0, 0, nRectX[0], TJAPlayer3.Skin.Game_Gauge_Rect[3]));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Dan && db現在のゲージ値[0] >= 80.0 && db現在のゲージ値[0] < 100.0)
|
|
||||||
{
|
|
||||||
int Opacity = 0;
|
|
||||||
if (this.ctGaugeFlash.n現在の値 <= 365) Opacity = 0;
|
|
||||||
else if (this.ctGaugeFlash.n現在の値 <= 448) Opacity = (int)((this.ctGaugeFlash.n現在の値 - 365) / 83f * 255f);
|
|
||||||
else if (this.ctGaugeFlash.n現在の値 <= 531) Opacity = 255 - (int)((this.ctGaugeFlash.n現在の値 - 448) / 83f * 255f);
|
|
||||||
|
|
||||||
if (TJAPlayer3.Tx.Gauge_Flash != null)
|
|
||||||
{
|
|
||||||
TJAPlayer3.Tx.Gauge_Flash.vc拡大縮小倍率.X = scale;
|
|
||||||
TJAPlayer3.Tx.Gauge_Flash.vc拡大縮小倍率.Y = scale;
|
|
||||||
|
|
||||||
TJAPlayer3.Tx.Gauge_Flash.Opacity = Opacity;
|
|
||||||
TJAPlayer3.Tx.Gauge_Flash.t2D描画(TJAPlayer3.app.Device, x, y,
|
|
||||||
new Rectangle(TJAPlayer3.Skin.Game_Gauge_Rect[0], TJAPlayer3.Skin.Game_Gauge_Rect[1], TJAPlayer3.Skin.Game_Gauge_Rect[2], TJAPlayer3.Skin.Game_Gauge_Rect[3]));
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (TJAPlayer3.Tx.Gauge_Line[0] != null )
|
|
||||||
{
|
|
||||||
#region [Rainbow]
|
|
||||||
|
|
||||||
if ( this.db現在のゲージ値[ 0 ] >= 100.0 )
|
|
||||||
{
|
|
||||||
this.ct虹アニメ.t進行Loop();
|
|
||||||
this.ct虹透明度.t進行Loop();
|
|
||||||
if(TJAPlayer3.Tx.Gauge_Rainbow[ this.ct虹アニメ.n現在の値 ] != null )
|
|
||||||
{
|
|
||||||
TJAPlayer3.Tx.Gauge_Rainbow[this.ct虹アニメ.n現在の値].vc拡大縮小倍率.X = scale;
|
|
||||||
TJAPlayer3.Tx.Gauge_Rainbow[this.ct虹アニメ.n現在の値].vc拡大縮小倍率.Y = scale;
|
|
||||||
|
|
||||||
TJAPlayer3.Tx.Gauge_Rainbow[虹ベース].vc拡大縮小倍率.X = scale;
|
|
||||||
TJAPlayer3.Tx.Gauge_Rainbow[虹ベース].vc拡大縮小倍率.Y = scale;
|
|
||||||
|
|
||||||
bool smart = TJAPlayer3.ConfigIni.nPlayerCount > 2 || TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan;
|
|
||||||
|
|
||||||
|
|
||||||
TJAPlayer3.Tx.Gauge_Rainbow[this.ct虹アニメ.n現在の値].Opacity = 255;
|
|
||||||
TJAPlayer3.Tx.Gauge_Rainbow[this.ct虹アニメ.n現在の値].t2D描画(TJAPlayer3.app.Device, x, y + (smart ? (TJAPlayer3.Skin.Game_Gauge_Rect[3] / 2) : 0),
|
|
||||||
new RectangleF(0,
|
|
||||||
smart ? (TJAPlayer3.Skin.Game_Gauge_Rect[3] / 2) : 0,
|
|
||||||
TJAPlayer3.Tx.Gauge_Rainbow[this.ct虹アニメ.n現在の値].szテクスチャサイズ.Width,
|
|
||||||
smart ? TJAPlayer3.Tx.Gauge_Rainbow[this.ct虹アニメ.n現在の値].szテクスチャサイズ.Height - (TJAPlayer3.Skin.Game_Gauge_Rect[3] / 2) : TJAPlayer3.Tx.Gauge_Rainbow[this.ct虹アニメ.n現在の値].szテクスチャサイズ.Height));
|
|
||||||
|
|
||||||
|
|
||||||
TJAPlayer3.Tx.Gauge_Rainbow[虹ベース].Opacity = (ct虹透明度.n現在の値 * 255 / (int)ct虹透明度.n終了値)/1;
|
|
||||||
TJAPlayer3.Tx.Gauge_Rainbow[虹ベース].t2D描画(TJAPlayer3.app.Device, x, y + (smart ? (TJAPlayer3.Skin.Game_Gauge_Rect[3] / 2) : 0),
|
|
||||||
new RectangleF(0,
|
|
||||||
smart ? (TJAPlayer3.Skin.Game_Gauge_Rect[3] / 2) : 0,
|
|
||||||
TJAPlayer3.Tx.Gauge_Rainbow[虹ベース].szテクスチャサイズ.Width,
|
|
||||||
smart ? TJAPlayer3.Tx.Gauge_Rainbow[虹ベース].szテクスチャサイズ.Height - (TJAPlayer3.Skin.Game_Gauge_Rect[3] / 2) : TJAPlayer3.Tx.Gauge_Rainbow[虹ベース].szテクスチャサイズ.Height));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
|
|
||||||
TJAPlayer3.Tx.Gauge_Line[0].vc拡大縮小倍率.X = scale;
|
|
||||||
TJAPlayer3.Tx.Gauge_Line[0].vc拡大縮小倍率.Y = scale;
|
|
||||||
|
|
||||||
TJAPlayer3.Tx.Gauge_Line[0].t2D描画( TJAPlayer3.app.Device, x, y);
|
|
||||||
}
|
|
||||||
|
|
||||||
#region[ 「Clear」icon ]
|
|
||||||
if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Dan && TJAPlayer3.ConfigIni.nPlayerCount <= 2)
|
|
||||||
{
|
|
||||||
int text_x;
|
|
||||||
int text_y;
|
|
||||||
if (TJAPlayer3.ConfigIni.bAIBattleMode)
|
|
||||||
{
|
|
||||||
text_x = TJAPlayer3.Skin.Game_Gauge_ClearText_X_AI;
|
|
||||||
text_y = TJAPlayer3.Skin.Game_Gauge_ClearText_Y_AI;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
text_x = TJAPlayer3.Skin.Game_Gauge_ClearText_X[0];
|
|
||||||
text_y = TJAPlayer3.Skin.Game_Gauge_ClearText_Y[0];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (this.db現在のゲージ値[0] >= 80.0)
|
|
||||||
{
|
|
||||||
TJAPlayer3.Tx.Gauge[0].t2D描画(TJAPlayer3.app.Device, text_x, text_y,
|
|
||||||
new Rectangle(TJAPlayer3.Skin.Game_Gauge_ClearText_Rect[0], TJAPlayer3.Skin.Game_Gauge_ClearText_Rect[1], TJAPlayer3.Skin.Game_Gauge_ClearText_Rect[2], TJAPlayer3.Skin.Game_Gauge_ClearText_Rect[3]));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
TJAPlayer3.Tx.Gauge[0].t2D描画(TJAPlayer3.app.Device, text_x, text_y,
|
|
||||||
new Rectangle(TJAPlayer3.Skin.Game_Gauge_ClearText_Clear_Rect[0], TJAPlayer3.Skin.Game_Gauge_ClearText_Clear_Rect[1], TJAPlayer3.Skin.Game_Gauge_ClearText_Clear_Rect[2], TJAPlayer3.Skin.Game_Gauge_ClearText_Clear_Rect[3]));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region [ Gauge 2P ]
|
|
||||||
|
|
||||||
for (int i = 1; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)
|
|
||||||
{
|
|
||||||
int index = TJAPlayer3.ConfigIni.nPlayerCount <= 2 ? 1 : i + 3;
|
|
||||||
if (TJAPlayer3.stage演奏ドラム画面.bDoublePlay && !TJAPlayer3.ConfigIni.bAIBattleMode && TJAPlayer3.Tx.Gauge[index] != null)
|
|
||||||
{
|
|
||||||
TJAPlayer3.Tx.Gauge[index].t2D描画(TJAPlayer3.app.Device, gauge_x[i], gauge_y[i], new Rectangle(0, 0, nRectX[i], TJAPlayer3.Skin.Game_Gauge_Rect[3]));
|
|
||||||
if (db現在のゲージ値[i] >= 80.0 && db現在のゲージ値[i] < 100.0)
|
|
||||||
{
|
|
||||||
int Opacity = 0;
|
|
||||||
if (this.ctGaugeFlash.n現在の値 <= 365) Opacity = 0;
|
|
||||||
else if (this.ctGaugeFlash.n現在の値 <= 448) Opacity = (int)((this.ctGaugeFlash.n現在の値 - 365) / 83f * 255f);
|
|
||||||
else if (this.ctGaugeFlash.n現在の値 <= 531) Opacity = 255 - (int)((this.ctGaugeFlash.n現在の値 - 448) / 83f * 255f);
|
|
||||||
TJAPlayer3.Tx.Gauge_Flash.Opacity = Opacity;
|
|
||||||
if (TJAPlayer3.ConfigIni.nPlayerCount <= 2)
|
|
||||||
{
|
|
||||||
TJAPlayer3.Tx.Gauge_Flash.t2D上下反転描画(TJAPlayer3.app.Device, gauge_x[i], gauge_y[i],
|
|
||||||
new Rectangle(TJAPlayer3.Skin.Game_Gauge_Rect[0], TJAPlayer3.Skin.Game_Gauge_Rect[1], TJAPlayer3.Skin.Game_Gauge_Rect[2], TJAPlayer3.Skin.Game_Gauge_Rect[3]));
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
|
TJAPlayer3.Tx.Gauge_Dan[1]?.t2D描画(TJAPlayer3.app.Device, x, y, new Rectangle(0, 0, nRectX[0], TJAPlayer3.Skin.Game_Gauge_Rect[3]));
|
||||||
|
|
||||||
|
for (int i = 0; i < TJAPlayer3.DTX.Dan_C.Length; i++)
|
||||||
{
|
{
|
||||||
TJAPlayer3.Tx.Gauge_Flash.t2D描画(TJAPlayer3.app.Device, gauge_x[i], gauge_y[i],
|
if (TJAPlayer3.DTX.Dan_C[i] != null && TJAPlayer3.DTX.Dan_C[i].GetExamType() == Exam.Type.Gauge && db現在のゲージ値[0] >= TJAPlayer3.DTX.Dan_C[i].GetValue(false))
|
||||||
new Rectangle(TJAPlayer3.Skin.Game_Gauge_Rect[0], TJAPlayer3.Skin.Game_Gauge_Rect[1], TJAPlayer3.Skin.Game_Gauge_Rect[2], TJAPlayer3.Skin.Game_Gauge_Rect[3]));
|
{
|
||||||
|
TJAPlayer3.Tx.Gauge_Dan[3].Opacity = 255;
|
||||||
|
TJAPlayer3.Tx.Gauge_Dan[3]?.t2D描画(TJAPlayer3.app.Device, x + (TJAPlayer3.DTX.Dan_C[i].GetValue(false) / 2 * nWidth), y, new Rectangle(0, 0, nRectX[0] - (TJAPlayer3.DTX.Dan_C[i].GetValue(false) / 2 * nWidth), TJAPlayer3.Skin.Game_Gauge_Rect[3]));
|
||||||
|
|
||||||
|
int Opacity = 0;
|
||||||
|
if (this.ctGaugeFlash.n現在の値 <= 365) Opacity = 0;
|
||||||
|
else if (this.ctGaugeFlash.n現在の値 <= 448) Opacity = (int)((this.ctGaugeFlash.n現在の値 - 365) / 83f * 255f);
|
||||||
|
else if (this.ctGaugeFlash.n現在の値 <= 531) Opacity = 255 - (int)((this.ctGaugeFlash.n現在の値 - 448) / 83f * 255f);
|
||||||
|
TJAPlayer3.Tx.Gauge_Dan[3].Opacity = Opacity;
|
||||||
|
TJAPlayer3.Tx.Gauge_Dan[3]?.t2D描画(TJAPlayer3.app.Device, x, y, new Rectangle(0, 0, TJAPlayer3.DTX.Dan_C[i].GetValue(false) / 2 * nWidth, TJAPlayer3.Skin.Game_Gauge_Rect[3]));
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
if (TJAPlayer3.Tx.Gauge[index] != null)
|
|
||||||
|
|
||||||
|
if (TJAPlayer3.Tx.Gauge_Line[0] != null)
|
||||||
{
|
{
|
||||||
if (this.db現在のゲージ値[i] >= 100.0)
|
#region [Rainbow]
|
||||||
|
|
||||||
|
if (this.db現在のゲージ値[0] >= 100.0)
|
||||||
{
|
{
|
||||||
this.ct虹アニメ.t進行Loop();
|
this.ct虹アニメ.t進行Loop();
|
||||||
this.ct虹透明度.t進行Loop();
|
this.ct虹透明度.t進行Loop();
|
||||||
if (TJAPlayer3.Tx.Gauge_Rainbow[this.ct虹アニメ.n現在の値] != null)
|
if (TJAPlayer3.Tx.Gauge_Rainbow[this.ct虹アニメ.n現在の値] != null)
|
||||||
{
|
{
|
||||||
TJAPlayer3.Tx.Gauge_Rainbow[ct虹アニメ.n現在の値].Opacity = 255;
|
TJAPlayer3.Tx.Gauge_Rainbow[this.ct虹アニメ.n現在の値].vc拡大縮小倍率.X = scale;
|
||||||
if (TJAPlayer3.ConfigIni.nPlayerCount <= 2)
|
TJAPlayer3.Tx.Gauge_Rainbow[this.ct虹アニメ.n現在の値].vc拡大縮小倍率.Y = scale;
|
||||||
{
|
|
||||||
TJAPlayer3.Tx.Gauge_Rainbow[ct虹アニメ.n現在の値].t2D上下反転描画(TJAPlayer3.app.Device, gauge_x[i], gauge_y[i]);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
TJAPlayer3.Tx.Gauge_Rainbow[ct虹アニメ.n現在の値].t2D描画(TJAPlayer3.app.Device, gauge_x[i], gauge_y[i] + (TJAPlayer3.Skin.Game_Gauge_Rect[3] / 2),
|
|
||||||
new RectangleF(0, (TJAPlayer3.Skin.Game_Gauge_Rect[3] / 2),
|
|
||||||
TJAPlayer3.Tx.Gauge_Rainbow[ct虹アニメ.n現在の値].szテクスチャサイズ.Width,
|
|
||||||
TJAPlayer3.Tx.Gauge_Rainbow[ct虹アニメ.n現在の値].szテクスチャサイズ.Height - (TJAPlayer3.Skin.Game_Gauge_Rect[3] / 2)));
|
|
||||||
}
|
|
||||||
TJAPlayer3.Tx.Gauge_Rainbow[虹ベース].Opacity = (int)(ct虹透明度.n現在の値 * 255 / ct虹透明度.n終了値) / 1;
|
|
||||||
|
|
||||||
if (TJAPlayer3.ConfigIni.nPlayerCount <= 2)
|
TJAPlayer3.Tx.Gauge_Rainbow[虹ベース].vc拡大縮小倍率.X = scale;
|
||||||
{
|
TJAPlayer3.Tx.Gauge_Rainbow[虹ベース].vc拡大縮小倍率.Y = scale;
|
||||||
TJAPlayer3.Tx.Gauge_Rainbow[虹ベース].t2D上下反転描画(TJAPlayer3.app.Device, gauge_x[i], gauge_y[i]);
|
|
||||||
}
|
bool smart = TJAPlayer3.ConfigIni.nPlayerCount > 2 || TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan;
|
||||||
else
|
|
||||||
{
|
|
||||||
TJAPlayer3.Tx.Gauge_Rainbow[虹ベース].t2D描画(TJAPlayer3.app.Device, gauge_x[i], gauge_y[i] + (TJAPlayer3.Skin.Game_Gauge_Rect[3] / 2),
|
TJAPlayer3.Tx.Gauge_Rainbow[this.ct虹アニメ.n現在の値].Opacity = 255;
|
||||||
new RectangleF(0, (TJAPlayer3.Skin.Game_Gauge_Rect[3] / 2),
|
TJAPlayer3.Tx.Gauge_Rainbow[this.ct虹アニメ.n現在の値].t2D描画(TJAPlayer3.app.Device, x, y + (smart ? (TJAPlayer3.Skin.Game_Gauge_Rect[3] / 2) : 0),
|
||||||
TJAPlayer3.Tx.Gauge_Rainbow[虹ベース].szテクスチャサイズ.Width,
|
new RectangleF(0,
|
||||||
TJAPlayer3.Tx.Gauge_Rainbow[虹ベース].szテクスチャサイズ.Height - (TJAPlayer3.Skin.Game_Gauge_Rect[3] / 2)));
|
smart ? (TJAPlayer3.Skin.Game_Gauge_Rect[3] / 2) : 0,
|
||||||
}
|
TJAPlayer3.Tx.Gauge_Rainbow[this.ct虹アニメ.n現在の値].szテクスチャサイズ.Width,
|
||||||
|
smart ? TJAPlayer3.Tx.Gauge_Rainbow[this.ct虹アニメ.n現在の値].szテクスチャサイズ.Height - (TJAPlayer3.Skin.Game_Gauge_Rect[3] / 2) : TJAPlayer3.Tx.Gauge_Rainbow[this.ct虹アニメ.n現在の値].szテクスチャサイズ.Height));
|
||||||
|
|
||||||
|
|
||||||
|
TJAPlayer3.Tx.Gauge_Rainbow[虹ベース].Opacity = (ct虹透明度.n現在の値 * 255 / (int)ct虹透明度.n終了値) / 1;
|
||||||
|
TJAPlayer3.Tx.Gauge_Rainbow[虹ベース].t2D描画(TJAPlayer3.app.Device, x, y + (smart ? (TJAPlayer3.Skin.Game_Gauge_Rect[3] / 2) : 0),
|
||||||
|
new RectangleF(0,
|
||||||
|
smart ? (TJAPlayer3.Skin.Game_Gauge_Rect[3] / 2) : 0,
|
||||||
|
TJAPlayer3.Tx.Gauge_Rainbow[虹ベース].szテクスチャサイズ.Width,
|
||||||
|
smart ? TJAPlayer3.Tx.Gauge_Rainbow[虹ベース].szテクスチャサイズ.Height - (TJAPlayer3.Skin.Game_Gauge_Rect[3] / 2) : TJAPlayer3.Tx.Gauge_Rainbow[虹ベース].szテクスチャサイズ.Height));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
TJAPlayer3.Tx.Gauge_Line[1]?.t2D描画(TJAPlayer3.app.Device, gauge_x[i], gauge_y[i]);
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
TJAPlayer3.Tx.Gauge_Line[0].vc拡大縮小倍率.X = scale;
|
||||||
|
TJAPlayer3.Tx.Gauge_Line[0].vc拡大縮小倍率.Y = scale;
|
||||||
|
|
||||||
|
TJAPlayer3.Tx.Gauge_Line[0].t2D描画(TJAPlayer3.app.Device, x, y);
|
||||||
}
|
}
|
||||||
#region[ 「クリア」文字 ]
|
|
||||||
if (TJAPlayer3.ConfigIni.nPlayerCount <= 2)
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
// Soul fire here
|
||||||
|
if (TJAPlayer3.Tx.Gauge_Soul_Fire != null)
|
||||||
|
{
|
||||||
|
//仮置き
|
||||||
|
int soulfire_width = TJAPlayer3.Tx.Gauge_Soul_Fire.szテクスチャサイズ.Width / 8;
|
||||||
|
int soulfire_height = TJAPlayer3.Tx.Gauge_Soul_Fire.szテクスチャサイズ.Height;
|
||||||
|
for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)
|
||||||
{
|
{
|
||||||
|
if (TJAPlayer3.ConfigIni.bAIBattleMode && i == 1) break;
|
||||||
|
|
||||||
|
int x;
|
||||||
|
int y;
|
||||||
|
if (TJAPlayer3.ConfigIni.bAIBattleMode)
|
||||||
|
{
|
||||||
|
x = TJAPlayer3.Skin.Gauge_Soul_Fire_X_AI;
|
||||||
|
y = TJAPlayer3.Skin.Gauge_Soul_Fire_Y_AI;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (TJAPlayer3.ConfigIni.nPlayerCount == 5)
|
||||||
|
{
|
||||||
|
x = TJAPlayer3.Skin.Gauge_Soul_Fire_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * i);
|
||||||
|
y = TJAPlayer3.Skin.Gauge_Soul_Fire_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * i);
|
||||||
|
}
|
||||||
|
else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3)
|
||||||
|
{
|
||||||
|
x = TJAPlayer3.Skin.Gauge_Soul_Fire_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * i);
|
||||||
|
y = TJAPlayer3.Skin.Gauge_Soul_Fire_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * i);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
x = TJAPlayer3.Skin.Gauge_Soul_Fire_X[i];
|
||||||
|
y = TJAPlayer3.Skin.Gauge_Soul_Fire_Y[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.db現在のゲージ値[i] >= 100.0)
|
||||||
|
{
|
||||||
|
this.ct炎.t進行Loop();
|
||||||
|
|
||||||
|
TJAPlayer3.Tx.Gauge_Soul_Fire.vc拡大縮小倍率.X = scale;
|
||||||
|
TJAPlayer3.Tx.Gauge_Soul_Fire.vc拡大縮小倍率.Y = scale;
|
||||||
|
|
||||||
|
TJAPlayer3.Tx.Gauge_Soul_Fire.t2D描画(TJAPlayer3.app.Device, x, y, new Rectangle(soulfire_width * (this.ct炎.n現在の値), 0, soulfire_width, soulfire_height));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (TJAPlayer3.Tx.Gauge_Soul != null)
|
||||||
|
{
|
||||||
|
//仮置き
|
||||||
|
int soul_height = TJAPlayer3.Tx.Gauge_Soul.szテクスチャサイズ.Height / 2;
|
||||||
|
for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)
|
||||||
|
{
|
||||||
|
if (TJAPlayer3.ConfigIni.bAIBattleMode && i == 1) break;
|
||||||
|
|
||||||
|
int x;
|
||||||
|
int y;
|
||||||
|
if (TJAPlayer3.ConfigIni.bAIBattleMode)
|
||||||
|
{
|
||||||
|
x = TJAPlayer3.Skin.Gauge_Soul_X_AI;
|
||||||
|
y = TJAPlayer3.Skin.Gauge_Soul_Y_AI;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (TJAPlayer3.ConfigIni.nPlayerCount == 5)
|
||||||
|
{
|
||||||
|
x = TJAPlayer3.Skin.Gauge_Soul_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * i);
|
||||||
|
y = TJAPlayer3.Skin.Gauge_Soul_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * i);
|
||||||
|
}
|
||||||
|
else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3)
|
||||||
|
{
|
||||||
|
x = TJAPlayer3.Skin.Gauge_Soul_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * i);
|
||||||
|
y = TJAPlayer3.Skin.Gauge_Soul_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * i);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
x = TJAPlayer3.Skin.Gauge_Soul_X[i];
|
||||||
|
y = TJAPlayer3.Skin.Gauge_Soul_Y[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
TJAPlayer3.Tx.Gauge_Soul.vc拡大縮小倍率.X = scale;
|
||||||
|
TJAPlayer3.Tx.Gauge_Soul.vc拡大縮小倍率.Y = scale;
|
||||||
|
|
||||||
if (this.db現在のゲージ値[i] >= 80.0)
|
if (this.db現在のゲージ値[i] >= 80.0)
|
||||||
{
|
{
|
||||||
TJAPlayer3.Tx.Gauge[1].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Gauge_ClearText_X[1], TJAPlayer3.Skin.Game_Gauge_ClearText_Y[1],
|
TJAPlayer3.Tx.Gauge_Soul.t2D描画(TJAPlayer3.app.Device, x, y, new Rectangle(0, 0, TJAPlayer3.Tx.Gauge_Soul.szテクスチャサイズ.Width, soul_height));
|
||||||
new Rectangle(TJAPlayer3.Skin.Game_Gauge_ClearText_Rect[0], TJAPlayer3.Skin.Game_Gauge_ClearText_Rect[1], TJAPlayer3.Skin.Game_Gauge_ClearText_Rect[2], TJAPlayer3.Skin.Game_Gauge_ClearText_Rect[3]));
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
TJAPlayer3.Tx.Gauge[1].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Gauge_ClearText_X[1], TJAPlayer3.Skin.Game_Gauge_ClearText_Y[1],
|
TJAPlayer3.Tx.Gauge_Soul.t2D描画(TJAPlayer3.app.Device, x, y, new Rectangle(0, soul_height, TJAPlayer3.Tx.Gauge_Soul.szテクスチャサイズ.Width, soul_height));
|
||||||
new Rectangle(TJAPlayer3.Skin.Game_Gauge_ClearText_Clear_Rect[0], TJAPlayer3.Skin.Game_Gauge_ClearText_Clear_Rect[1], TJAPlayer3.Skin.Game_Gauge_ClearText_Clear_Rect[2], TJAPlayer3.Skin.Game_Gauge_ClearText_Clear_Rect[3]));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endregion
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
// Soul fire here
|
|
||||||
if(TJAPlayer3.Tx.Gauge_Soul_Fire != null )
|
|
||||||
{
|
|
||||||
//仮置き
|
|
||||||
int soulfire_width = TJAPlayer3.Tx.Gauge_Soul_Fire.szテクスチャサイズ.Width / 8;
|
|
||||||
int soulfire_height = TJAPlayer3.Tx.Gauge_Soul_Fire.szテクスチャサイズ.Height;
|
|
||||||
for ( int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++ )
|
|
||||||
{
|
|
||||||
if (TJAPlayer3.ConfigIni.bAIBattleMode && i == 1) break;
|
|
||||||
|
|
||||||
int x;
|
|
||||||
int y;
|
|
||||||
if (TJAPlayer3.ConfigIni.bAIBattleMode)
|
|
||||||
{
|
|
||||||
x = TJAPlayer3.Skin.Gauge_Soul_Fire_X_AI;
|
|
||||||
y = TJAPlayer3.Skin.Gauge_Soul_Fire_Y_AI;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (TJAPlayer3.ConfigIni.nPlayerCount == 5)
|
|
||||||
{
|
|
||||||
x = TJAPlayer3.Skin.Gauge_Soul_Fire_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * i);
|
|
||||||
y = TJAPlayer3.Skin.Gauge_Soul_Fire_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * i);
|
|
||||||
}
|
|
||||||
else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3)
|
|
||||||
{
|
|
||||||
x = TJAPlayer3.Skin.Gauge_Soul_Fire_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * i);
|
|
||||||
y = TJAPlayer3.Skin.Gauge_Soul_Fire_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * i);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
x = TJAPlayer3.Skin.Gauge_Soul_Fire_X[i];
|
|
||||||
y = TJAPlayer3.Skin.Gauge_Soul_Fire_Y[i];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( this.db現在のゲージ値[ i ] >= 100.0)
|
|
||||||
{
|
|
||||||
this.ct炎.t進行Loop();
|
|
||||||
|
|
||||||
TJAPlayer3.Tx.Gauge_Soul_Fire.vc拡大縮小倍率.X = scale;
|
|
||||||
TJAPlayer3.Tx.Gauge_Soul_Fire.vc拡大縮小倍率.Y = scale;
|
|
||||||
|
|
||||||
TJAPlayer3.Tx.Gauge_Soul_Fire.t2D描画( TJAPlayer3.app.Device, x, y, new Rectangle(soulfire_width * ( this.ct炎.n現在の値 ), 0, soulfire_width, soulfire_height) );
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(TJAPlayer3.Tx.Gauge_Soul != null )
|
|
||||||
{
|
|
||||||
//仮置き
|
|
||||||
int soul_height = TJAPlayer3.Tx.Gauge_Soul.szテクスチャサイズ.Height / 2;
|
|
||||||
for( int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++ )
|
|
||||||
{
|
|
||||||
if (TJAPlayer3.ConfigIni.bAIBattleMode && i == 1) break;
|
|
||||||
|
|
||||||
int x;
|
|
||||||
int y;
|
|
||||||
if (TJAPlayer3.ConfigIni.bAIBattleMode)
|
|
||||||
{
|
|
||||||
x = TJAPlayer3.Skin.Gauge_Soul_X_AI;
|
|
||||||
y = TJAPlayer3.Skin.Gauge_Soul_Y_AI;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (TJAPlayer3.ConfigIni.nPlayerCount == 5)
|
|
||||||
{
|
|
||||||
x = TJAPlayer3.Skin.Gauge_Soul_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * i);
|
|
||||||
y = TJAPlayer3.Skin.Gauge_Soul_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * i);
|
|
||||||
}
|
|
||||||
else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3)
|
|
||||||
{
|
|
||||||
x = TJAPlayer3.Skin.Gauge_Soul_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * i);
|
|
||||||
y = TJAPlayer3.Skin.Gauge_Soul_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * i);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
x = TJAPlayer3.Skin.Gauge_Soul_X[i];
|
|
||||||
y = TJAPlayer3.Skin.Gauge_Soul_Y[i];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
TJAPlayer3.Tx.Gauge_Soul.vc拡大縮小倍率.X = scale;
|
|
||||||
TJAPlayer3.Tx.Gauge_Soul.vc拡大縮小倍率.Y = scale;
|
|
||||||
|
|
||||||
if ( this.db現在のゲージ値[ i ] >= 80.0)
|
|
||||||
{
|
|
||||||
TJAPlayer3.Tx.Gauge_Soul.t2D描画( TJAPlayer3.app.Device, x, y, new Rectangle( 0, 0, TJAPlayer3.Tx.Gauge_Soul.szテクスチャサイズ.Width, soul_height) );
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
TJAPlayer3.Tx.Gauge_Soul.t2D描画( TJAPlayer3.app.Device, x, y, new Rectangle( 0, soul_height, TJAPlayer3.Tx.Gauge_Soul.szテクスチャサイズ.Width, soul_height) );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//仮置き
|
//仮置き
|
||||||
int[] nSoulExplosion = new int[] { 73, 468, 0, 0 };
|
int[] nSoulExplosion = new int[] { 73, 468, 0, 0 };
|
||||||
|
@ -112,7 +112,7 @@ namespace TJAPlayer3
|
|||||||
// 今の段階では魂ゲージ80%以上でチェック。
|
// 今の段階では魂ゲージ80%以上でチェック。
|
||||||
for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)
|
for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)
|
||||||
{
|
{
|
||||||
if (TJAPlayer3.stage演奏ドラム画面.actGauge.db現在のゲージ値[i] >= 80)
|
if (HGaugeMethods.UNSAFE_FastNormaCheck(i))
|
||||||
{
|
{
|
||||||
if (TJAPlayer3.stage演奏ドラム画面.CChartScore[i].nMiss == 0 && TJAPlayer3.stage演奏ドラム画面.CChartScore[i].nMine == 0)
|
if (TJAPlayer3.stage演奏ドラム画面.CChartScore[i].nMiss == 0 && TJAPlayer3.stage演奏ドラム画面.CChartScore[i].nMine == 0)
|
||||||
//if (TJAPlayer3.stage演奏ドラム画面.nヒット数_Auto含まない.Drums.Miss == 0)
|
//if (TJAPlayer3.stage演奏ドラム画面.nヒット数_Auto含まない.Drums.Miss == 0)
|
||||||
@ -819,6 +819,8 @@ namespace TJAPlayer3
|
|||||||
private EndAnimeScript Dan_Gold_FullComboScript;
|
private EndAnimeScript Dan_Gold_FullComboScript;
|
||||||
private EndAnimeScript Dan_Gold_PerfectScript;
|
private EndAnimeScript Dan_Gold_PerfectScript;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
bool b再生済み;
|
bool b再生済み;
|
||||||
bool bリザルトボイス再生済み;
|
bool bリザルトボイス再生済み;
|
||||||
bool bSongsPlayed = false;
|
bool bSongsPlayed = false;
|
||||||
@ -837,6 +839,7 @@ namespace TJAPlayer3
|
|||||||
CSound[] soundFailed = new CSound[5];
|
CSound[] soundFailed = new CSound[5];
|
||||||
CSound[] soundFullCombo = new CSound[5];
|
CSound[] soundFullCombo = new CSound[5];
|
||||||
CSound[] soundDondaFullCombo = new CSound[5];
|
CSound[] soundDondaFullCombo = new CSound[5];
|
||||||
|
|
||||||
CSound soundDanFailed;
|
CSound soundDanFailed;
|
||||||
CSound soundDanRedClear;
|
CSound soundDanRedClear;
|
||||||
CSound soundDanRedFC;
|
CSound soundDanRedFC;
|
||||||
|
@ -210,11 +210,10 @@ namespace TJAPlayer3
|
|||||||
base.On活性化();
|
base.On活性化();
|
||||||
base.eフェーズID = CStage.Eフェーズ.共通_通常状態;//初期化すれば、リザルト変遷は止まる。
|
base.eフェーズID = CStage.Eフェーズ.共通_通常状態;//初期化すれば、リザルト変遷は止まる。
|
||||||
|
|
||||||
ifp[0] = false;
|
for (int i = 0; i < 5; i++) {
|
||||||
ifp[1] = false;
|
ifp[i] = false;
|
||||||
ifp[2] = false;
|
isDeniedPlaying[i] = false;
|
||||||
ifp[3] = false;
|
}
|
||||||
ifp[4] = false;
|
|
||||||
|
|
||||||
this.nStoredHit = new int[TJAPlayer3.ConfigIni.nPlayerCount];
|
this.nStoredHit = new int[TJAPlayer3.ConfigIni.nPlayerCount];
|
||||||
|
|
||||||
@ -603,7 +602,7 @@ namespace TJAPlayer3
|
|||||||
int Character = this.actChara.iCurrentCharacter[i];
|
int Character = this.actChara.iCurrentCharacter[i];
|
||||||
if (TJAPlayer3.Skin.Characters_10Combo_Maxed_Ptn[Character] != 0)
|
if (TJAPlayer3.Skin.Characters_10Combo_Maxed_Ptn[Character] != 0)
|
||||||
{
|
{
|
||||||
if (TJAPlayer3.stage演奏ドラム画面.actGauge.db現在のゲージ値[i] >= 100)
|
if (HGaugeMethods.UNSAFE_IsRainbow(i))
|
||||||
{
|
{
|
||||||
double dbUnit = (((60.0 / (TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM[i]))));
|
double dbUnit = (((60.0 / (TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM[i]))));
|
||||||
this.actChara.ChangeAnime(i, CAct演奏Drumsキャラクター.Anime.Combo10_Max, true);
|
this.actChara.ChangeAnime(i, CAct演奏Drumsキャラクター.Anime.Combo10_Max, true);
|
||||||
@ -970,6 +969,8 @@ namespace TJAPlayer3
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (TJAPlayer3.stage演奏ドラム画面.isDeniedPlaying[nUsePlayer]) break;
|
||||||
|
|
||||||
if (!TJAPlayer3.ConfigIni.bTokkunMode && TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[0] && isPad1P)//2020.05.18 Mr-Ojii オート時の入力キャンセル
|
if (!TJAPlayer3.ConfigIni.bTokkunMode && TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[0] && isPad1P)//2020.05.18 Mr-Ojii オート時の入力キャンセル
|
||||||
break;
|
break;
|
||||||
else if ((TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[1] || TJAPlayer3.ConfigIni.bAIBattleMode) && isPad2P)
|
else if ((TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[1] || TJAPlayer3.ConfigIni.bAIBattleMode) && isPad2P)
|
||||||
|
@ -381,14 +381,17 @@ namespace TJAPlayer3
|
|||||||
}
|
}
|
||||||
|
|
||||||
//if (TJAPlayer3.ConfigIni.nPlayerCount <= 2)
|
//if (TJAPlayer3.ConfigIni.nPlayerCount <= 2)
|
||||||
{
|
var _frame = TJAPlayer3.Tx.Result_Gauge_Frame;
|
||||||
|
if (_frame != null) {
|
||||||
int bar_x;
|
int bar_x;
|
||||||
int bar_y;
|
int bar_y;
|
||||||
int gauge_base_x;
|
int gauge_base_x;
|
||||||
int gauge_base_y;
|
int gauge_base_y;
|
||||||
|
|
||||||
|
|
||||||
if (TJAPlayer3.ConfigIni.nPlayerCount == 5)
|
if (TJAPlayer3.ConfigIni.nPlayerCount == 5)
|
||||||
{
|
{
|
||||||
TJAPlayer3.Tx.Result_Gauge_Base[shiftPos].vc拡大縮小倍率.X = 0.5f;
|
_frame.vc拡大縮小倍率.X = 0.5f;
|
||||||
bar_x = TJAPlayer3.Skin.Result_DifficultyBar_5P[0] + TJAPlayer3.Skin.Result_UIMove_5P_X[pos];
|
bar_x = TJAPlayer3.Skin.Result_DifficultyBar_5P[0] + TJAPlayer3.Skin.Result_UIMove_5P_X[pos];
|
||||||
bar_y = TJAPlayer3.Skin.Result_DifficultyBar_5P[1] + TJAPlayer3.Skin.Result_UIMove_5P_Y[pos];
|
bar_y = TJAPlayer3.Skin.Result_DifficultyBar_5P[1] + TJAPlayer3.Skin.Result_UIMove_5P_Y[pos];
|
||||||
gauge_base_x = TJAPlayer3.Skin.Result_Gauge_Base_5P[0] + TJAPlayer3.Skin.Result_UIMove_5P_X[pos];
|
gauge_base_x = TJAPlayer3.Skin.Result_Gauge_Base_5P[0] + TJAPlayer3.Skin.Result_UIMove_5P_X[pos];
|
||||||
@ -396,7 +399,7 @@ namespace TJAPlayer3
|
|||||||
}
|
}
|
||||||
else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3)
|
else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3)
|
||||||
{
|
{
|
||||||
TJAPlayer3.Tx.Result_Gauge_Base[shiftPos].vc拡大縮小倍率.X = 0.5f;
|
_frame.vc拡大縮小倍率.X = 0.5f;
|
||||||
bar_x = TJAPlayer3.Skin.Result_DifficultyBar_4P[0] + TJAPlayer3.Skin.Result_UIMove_4P_X[pos];
|
bar_x = TJAPlayer3.Skin.Result_DifficultyBar_4P[0] + TJAPlayer3.Skin.Result_UIMove_4P_X[pos];
|
||||||
bar_y = TJAPlayer3.Skin.Result_DifficultyBar_4P[1] + TJAPlayer3.Skin.Result_UIMove_4P_Y[pos];
|
bar_y = TJAPlayer3.Skin.Result_DifficultyBar_4P[1] + TJAPlayer3.Skin.Result_UIMove_4P_Y[pos];
|
||||||
gauge_base_x = TJAPlayer3.Skin.Result_Gauge_Base_4P[0] + TJAPlayer3.Skin.Result_UIMove_4P_X[pos];
|
gauge_base_x = TJAPlayer3.Skin.Result_Gauge_Base_4P[0] + TJAPlayer3.Skin.Result_UIMove_4P_X[pos];
|
||||||
@ -404,7 +407,7 @@ namespace TJAPlayer3
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
TJAPlayer3.Tx.Result_Gauge_Base[shiftPos].vc拡大縮小倍率.X = 1.0f;
|
_frame.vc拡大縮小倍率.X = 1.0f;
|
||||||
bar_x = TJAPlayer3.Skin.Result_DifficultyBar_X[pos];
|
bar_x = TJAPlayer3.Skin.Result_DifficultyBar_X[pos];
|
||||||
bar_y = TJAPlayer3.Skin.Result_DifficultyBar_Y[pos];
|
bar_y = TJAPlayer3.Skin.Result_DifficultyBar_Y[pos];
|
||||||
gauge_base_x = TJAPlayer3.Skin.Result_Gauge_Base_X[pos];
|
gauge_base_x = TJAPlayer3.Skin.Result_Gauge_Base_X[pos];
|
||||||
@ -414,8 +417,8 @@ namespace TJAPlayer3
|
|||||||
TJAPlayer3.Tx.Result_Diff_Bar.t2D描画(TJAPlayer3.app.Device, bar_x, bar_y,
|
TJAPlayer3.Tx.Result_Diff_Bar.t2D描画(TJAPlayer3.app.Device, bar_x, bar_y,
|
||||||
new RectangleF(0, TJAPlayer3.stage選曲.n確定された曲の難易度[i] * TJAPlayer3.Skin.Result_DifficultyBar_Size[1], TJAPlayer3.Skin.Result_DifficultyBar_Size[0], TJAPlayer3.Skin.Result_DifficultyBar_Size[1]));
|
new RectangleF(0, TJAPlayer3.stage選曲.n確定された曲の難易度[i] * TJAPlayer3.Skin.Result_DifficultyBar_Size[1], TJAPlayer3.Skin.Result_DifficultyBar_Size[0], TJAPlayer3.Skin.Result_DifficultyBar_Size[1]));
|
||||||
|
|
||||||
TJAPlayer3.Tx.Result_Gauge_Base[shiftPos].t2D描画(TJAPlayer3.app.Device, gauge_base_x, gauge_base_y);
|
_frame.t2D描画(TJAPlayer3.app.Device, gauge_base_x, gauge_base_y);
|
||||||
TJAPlayer3.Tx.Result_Gauge_Base[shiftPos].vc拡大縮小倍率.X = 1.0f;
|
_frame.vc拡大縮小倍率.X = 1.0f;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ct全体進行.n現在の値 >= 2000)
|
if (ct全体進行.n現在の値 >= 2000)
|
||||||
@ -436,6 +439,9 @@ namespace TJAPlayer3
|
|||||||
ctゲージアニメ[i].n現在の値 = (int)ctゲージアニメ[i].n終了値;
|
ctゲージアニメ[i].n現在の値 = (int)ctゲージアニメ[i].n終了値;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
{
|
{
|
||||||
int gauge_x;
|
int gauge_x;
|
||||||
int gauge_y;
|
int gauge_y;
|
||||||
@ -462,9 +468,10 @@ namespace TJAPlayer3
|
|||||||
new RectangleF(TJAPlayer3.Skin.Result_Gauge_Rect[0], TJAPlayer3.Skin.Result_Gauge_Rect[1], (TJAPlayer3.Skin.Result_Gauge_Rect[2] / 50.0f) * ctゲージアニメ[i].n現在の値, TJAPlayer3.Skin.Result_Gauge_Rect[3]));
|
new RectangleF(TJAPlayer3.Skin.Result_Gauge_Rect[0], TJAPlayer3.Skin.Result_Gauge_Rect[1], (TJAPlayer3.Skin.Result_Gauge_Rect[2] / 50.0f) * ctゲージアニメ[i].n現在の値, TJAPlayer3.Skin.Result_Gauge_Rect[3]));
|
||||||
TJAPlayer3.Tx.Result_Gauge[shiftPos].vc拡大縮小倍率.X = 1.0f;
|
TJAPlayer3.Tx.Result_Gauge[shiftPos].vc拡大縮小倍率.X = 1.0f;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
// Modify to array for each players using i
|
// Modify to array for each players using i
|
||||||
|
|
||||||
|
/*
|
||||||
int soultext_width = TJAPlayer3.Tx.Result_Soul_Text.szテクスチャサイズ.Width / 3;
|
int soultext_width = TJAPlayer3.Tx.Result_Soul_Text.szテクスチャサイズ.Width / 3;
|
||||||
int soultext_height = TJAPlayer3.Tx.Result_Soul_Text.szテクスチャサイズ.Height;
|
int soultext_height = TJAPlayer3.Tx.Result_Soul_Text.szテクスチャサイズ.Height;
|
||||||
|
|
||||||
@ -496,6 +503,7 @@ namespace TJAPlayer3
|
|||||||
soulFire_y = TJAPlayer3.Skin.Result_Soul_Fire_Y[pos];
|
soulFire_y = TJAPlayer3.Skin.Result_Soul_Fire_Y[pos];
|
||||||
TJAPlayer3.Tx.Result_Rainbow[ct虹ゲージアニメ.n現在の値].vc拡大縮小倍率.X = 1.0f;
|
TJAPlayer3.Tx.Result_Rainbow[ct虹ゲージアニメ.n現在の値].vc拡大縮小倍率.X = 1.0f;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
if (ctゲージアニメ[i].b終了値に達した)
|
if (ctゲージアニメ[i].b終了値に達した)
|
||||||
{
|
{
|
||||||
@ -523,6 +531,7 @@ namespace TJAPlayer3
|
|||||||
ct虹ゲージアニメ.t進行Loop();
|
ct虹ゲージアニメ.t進行Loop();
|
||||||
ctSoul.t進行Loop();
|
ctSoul.t進行Loop();
|
||||||
|
|
||||||
|
/*
|
||||||
int rainbow_x;
|
int rainbow_x;
|
||||||
int rainbow_y;
|
int rainbow_y;
|
||||||
if (TJAPlayer3.ConfigIni.nPlayerCount == 5)
|
if (TJAPlayer3.ConfigIni.nPlayerCount == 5)
|
||||||
@ -556,8 +565,13 @@ namespace TJAPlayer3
|
|||||||
if (ctSoul.n現在の値 % 2 == 0)
|
if (ctSoul.n現在の値 % 2 == 0)
|
||||||
TJAPlayer3.Tx.Result_Soul_Text.t2D中心基準描画(TJAPlayer3.app.Device, soulText_x, soulText_y, new Rectangle(soultext_width * 2, 0, soultext_width, soultext_height));
|
TJAPlayer3.Tx.Result_Soul_Text.t2D中心基準描画(TJAPlayer3.app.Device, soulText_x, soulText_y, new Rectangle(soultext_width * 2, 0, soultext_width, soultext_height));
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
HGaugeMethods.UNSAFE_DrawResultGaugeFast(i, shiftPos, pos, ctゲージアニメ[i].n現在の値, ct虹ゲージアニメ.n現在の値, ctSoul.n現在の値);
|
||||||
|
|
||||||
|
/*
|
||||||
if (ctゲージアニメ[i].n現在の値 != 50)
|
if (ctゲージアニメ[i].n現在の値 != 50)
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
@ -596,6 +610,7 @@ namespace TJAPlayer3
|
|||||||
new Rectangle(soultext_width * (ctゲージアニメ[i].n現在の値 <= 30 ? 0 : 1), 0, soultext_width, soultext_height));
|
new Rectangle(soultext_width * (ctゲージアニメ[i].n現在の値 <= 30 ? 0 : 1), 0, soultext_width, soultext_height));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
|
@ -177,12 +177,16 @@ namespace TJAPlayer3
|
|||||||
{
|
{
|
||||||
var ccf = TJAPlayer3.stage演奏ドラム画面.CChartScore[p];
|
var ccf = TJAPlayer3.stage演奏ドラム画面.CChartScore[p];
|
||||||
|
|
||||||
this.nクリア[p] = (ccf.nMiss == 0 && ccf.nMine == 0 && TJAPlayer3.stage演奏ドラム画面.actGauge.db現在のゲージ値[p] == 100)
|
this.nクリア[p] = 0;
|
||||||
? ccf.nGood == 0
|
if (HGaugeMethods.UNSAFE_FastNormaCheck(p))
|
||||||
? 3 : 2
|
{
|
||||||
: TJAPlayer3.stage演奏ドラム画面.actGauge.db現在のゲージ値[p] >= 80
|
this.nクリア[p] = 1;
|
||||||
? 1
|
if (ccf.nMiss == 0 && ccf.nMine == 0)
|
||||||
: 0;
|
{
|
||||||
|
this.nクリア[p] = 2;
|
||||||
|
if (ccf.nGood == 0) this.nクリア[p] = 3;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if ((int)TJAPlayer3.stage演奏ドラム画面.actScore.Get(E楽器パート.DRUMS, p) < 500000)
|
if ((int)TJAPlayer3.stage演奏ドラム画面.actScore.Get(E楽器パート.DRUMS, p) < 500000)
|
||||||
{
|
{
|
||||||
@ -591,7 +595,7 @@ namespace TJAPlayer3
|
|||||||
|
|
||||||
int clearModifier = modifiers[0];
|
int clearModifier = modifiers[0];
|
||||||
|
|
||||||
if (TJAPlayer3.stage演奏ドラム画面.actGauge.db現在のゲージ値[i] >= 80)
|
if (HGaugeMethods.UNSAFE_FastNormaCheck(i))
|
||||||
{
|
{
|
||||||
clearModifier = modifiers[1] * diffModifier;
|
clearModifier = modifiers[1] * diffModifier;
|
||||||
if (TJAPlayer3.stage演奏ドラム画面.CChartScore[i].nMiss == 0)
|
if (TJAPlayer3.stage演奏ドラム画面.CChartScore[i].nMiss == 0)
|
||||||
@ -652,7 +656,7 @@ namespace TJAPlayer3
|
|||||||
&& !(TJAPlayer3.ConfigIni.bAIBattleMode && i == 1))
|
&& !(TJAPlayer3.ConfigIni.bAIBattleMode && i == 1))
|
||||||
{
|
{
|
||||||
int _cs = -1;
|
int _cs = -1;
|
||||||
if (TJAPlayer3.stage演奏ドラム画面.actGauge.db現在のゲージ値[i] >= 80)
|
if (HGaugeMethods.UNSAFE_FastNormaCheck(i))
|
||||||
{
|
{
|
||||||
_cs = 0;
|
_cs = 0;
|
||||||
if (TJAPlayer3.stage演奏ドラム画面.CChartScore[i].nMiss == 0)
|
if (TJAPlayer3.stage演奏ドラム画面.CChartScore[i].nMiss == 0)
|
||||||
|
@ -150,6 +150,7 @@
|
|||||||
<Compile Include="Databases\Databases.cs" />
|
<Compile Include="Databases\Databases.cs" />
|
||||||
<Compile Include="Databases\DBCharacter.cs" />
|
<Compile Include="Databases\DBCharacter.cs" />
|
||||||
<Compile Include="Helpers\HEasingMethods.cs" />
|
<Compile Include="Helpers\HEasingMethods.cs" />
|
||||||
|
<Compile Include="Helpers\HGaugeMethods.cs" />
|
||||||
<Compile Include="Helpers\HPrivateFastFont.cs" />
|
<Compile Include="Helpers\HPrivateFastFont.cs" />
|
||||||
<Compile Include="Helpers\HRarity.cs" />
|
<Compile Include="Helpers\HRarity.cs" />
|
||||||
<Compile Include="I18N\CLang_es.cs" />
|
<Compile Include="I18N\CLang_es.cs" />
|
||||||
|
5
Test/Global/Characters/NewTemplate/Effects.json
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"gauge":"Hard",
|
||||||
|
"bombFactor":15,
|
||||||
|
"fuseRollFactor":5
|
||||||
|
}
|
Before Width: | Height: | Size: 9.9 KiB After Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.9 KiB |
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 5.2 KiB |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 5.3 KiB |
Before Width: | Height: | Size: 995 B After Width: | Height: | Size: 1.9 KiB |
Before Width: | Height: | Size: 1000 B After Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 993 B After Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 995 B After Width: | Height: | Size: 5.8 KiB |
Before Width: | Height: | Size: 1000 B After Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 2.0 KiB |
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 6.7 KiB |
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 6.8 KiB |
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 2.0 KiB |
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 5.2 KiB |
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 5.8 KiB |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 5.0 KiB |
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 6.0 KiB |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 4.9 KiB |
Before Width: | Height: | Size: 7.2 KiB After Width: | Height: | Size: 6.0 KiB |
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 4.9 KiB |
After Width: | Height: | Size: 6.5 KiB |
After Width: | Height: | Size: 6.9 KiB |
After Width: | Height: | Size: 5.8 KiB |
Before Width: | Height: | Size: 920 B After Width: | Height: | Size: 2.0 KiB |
After Width: | Height: | Size: 6.2 KiB |
After Width: | Height: | Size: 6.3 KiB |
After Width: | Height: | Size: 5.5 KiB |
After Width: | Height: | Size: 5.3 KiB |
After Width: | Height: | Size: 5.1 KiB |
After Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 34 KiB |
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 33 KiB |
After Width: | Height: | Size: 42 KiB |
After Width: | Height: | Size: 43 KiB |
After Width: | Height: | Size: 42 KiB |
After Width: | Height: | Size: 42 KiB |
After Width: | Height: | Size: 42 KiB |
After Width: | Height: | Size: 42 KiB |
After Width: | Height: | Size: 42 KiB |
After Width: | Height: | Size: 44 KiB |
After Width: | Height: | Size: 44 KiB |
After Width: | Height: | Size: 44 KiB |
After Width: | Height: | Size: 43 KiB |
After Width: | Height: | Size: 43 KiB |
After Width: | Height: | Size: 32 KiB |
After Width: | Height: | Size: 32 KiB |
After Width: | Height: | Size: 32 KiB |
After Width: | Height: | Size: 31 KiB |
After Width: | Height: | Size: 32 KiB |
After Width: | Height: | Size: 32 KiB |
After Width: | Height: | Size: 32 KiB |
After Width: | Height: | Size: 32 KiB |
After Width: | Height: | Size: 31 KiB |
After Width: | Height: | Size: 31 KiB |
After Width: | Height: | Size: 31 KiB |
After Width: | Height: | Size: 31 KiB |
Before Width: | Height: | Size: 6.9 KiB After Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 6.5 KiB |
Before Width: | Height: | Size: 7.1 KiB After Width: | Height: | Size: 6.4 KiB |
Before Width: | Height: | Size: 7.2 KiB After Width: | Height: | Size: 6.8 KiB |
Before Width: | Height: | Size: 8.8 KiB After Width: | Height: | Size: 5.3 KiB |
Before Width: | Height: | Size: 5.8 KiB After Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 5.7 KiB After Width: | Height: | Size: 8.1 KiB |
Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 6.5 KiB |
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 7.7 KiB |
Before Width: | Height: | Size: 4.3 KiB After Width: | Height: | Size: 6.6 KiB |
After Width: | Height: | Size: 6.4 KiB |
After Width: | Height: | Size: 6.9 KiB |
After Width: | Height: | Size: 8.7 KiB |
After Width: | Height: | Size: 4.7 KiB |
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 13 KiB |