1
0
mirror of synced 2024-11-24 07:30:21 +01:00

AIバトル演奏の本格実装2 (#357)

This commit is contained in:
Takkkom 2023-01-26 14:46:36 +09:00 committed by GitHub
parent 592fe56b0f
commit b8334f6fb1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
62 changed files with 436 additions and 41 deletions

View File

@ -3296,6 +3296,14 @@ namespace TJAPlayer3
Game_Gauge_Y[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Game_Gauge_X_AI")
{
Game_Gauge_X_AI = int.Parse(strParam);
}
else if (strCommand == "Game_Gauge_Y_AI")
{
Game_Gauge_Y_AI = int.Parse(strParam);
}
else if (strCommand == "Game_Gauge_Rect")
{
string[] strSplit = strParam.Split(',');
@ -3320,6 +3328,14 @@ namespace TJAPlayer3
Game_Gauge_ClearText_Y[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Game_Gauge_ClearText_X_AI")
{
Game_Gauge_ClearText_X_AI = int.Parse(strParam);
}
else if (strCommand == "Game_Gauge_ClearText_Y_AI")
{
Game_Gauge_ClearText_Y_AI = int.Parse(strParam);
}
else if (strCommand == "Game_Gauge_ClearText_Rect")
{
string[] strSplit = strParam.Split(',');
@ -3352,6 +3368,14 @@ namespace TJAPlayer3
Gauge_Soul_Y[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Gauge_Soul_X_AI")
{
Gauge_Soul_X_AI = int.Parse(strParam);
}
else if (strCommand == "Gauge_Soul_Y_AI")
{
Gauge_Soul_Y_AI = int.Parse(strParam);
}
else if (strCommand == "Gauge_Soul_Fire_X")
{
string[] strSplit = strParam.Split(',');
@ -3368,6 +3392,14 @@ namespace TJAPlayer3
Gauge_Soul_Fire_Y[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Gauge_Soul_Fire_X_AI")
{
Gauge_Soul_Fire_X_AI = int.Parse(strParam);
}
else if (strCommand == "Gauge_Soul_Fire_Y_AI")
{
Gauge_Soul_Fire_Y_AI = int.Parse(strParam);
}
else if (strCommand == "Game_Gauge_Rainbow_Timer")
{
if (int.Parse(strParam) != 0)
@ -4144,6 +4176,78 @@ namespace TJAPlayer3
{
Game_AIBattle_Batch_Move[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Game_AIBattle_Judge_Meter_X")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
Game_AIBattle_Judge_Meter_X[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Game_AIBattle_Judge_Meter_Y")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
Game_AIBattle_Judge_Meter_Y[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Game_AIBattle_Judge_Number_Perfect_X")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
Game_AIBattle_Judge_Number_Perfect_X[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Game_AIBattle_Judge_Number_Perfect_Y")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
Game_AIBattle_Judge_Number_Perfect_Y[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Game_AIBattle_Judge_Number_Good_X")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
Game_AIBattle_Judge_Number_Good_X[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Game_AIBattle_Judge_Number_Good_Y")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
Game_AIBattle_Judge_Number_Good_Y[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Game_AIBattle_Judge_Number_Miss_X")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
Game_AIBattle_Judge_Number_Miss_X[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Game_AIBattle_Judge_Number_Miss_Y")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
Game_AIBattle_Judge_Number_Miss_Y[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Game_AIBattle_Judge_Number_Interval")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
Game_AIBattle_Judge_Number_Interval[i] = int.Parse(strSplit[i]);
}
}
#endregion
@ -5599,15 +5703,23 @@ namespace TJAPlayer3
#region Gauge
public int[] Game_Gauge_X = new int[] { 492, 492 };
public int[] Game_Gauge_Y = new int[] { 144, 532 };
public int Game_Gauge_X_AI = 650;
public int Game_Gauge_Y_AI = 153;
public int[] Game_Gauge_Rect = new int[] { 0, 0, 700, 44 };
public int[] Game_Gauge_ClearText_X = new int[] { 1038, 1038 };
public int[] Game_Gauge_ClearText_Y = new int[] { 144, 554 };
public int Game_Gauge_ClearText_X_AI = 1087;
public int Game_Gauge_ClearText_Y_AI = 153;
public int[] Game_Gauge_ClearText_Rect = new int[] { 0, 44, 58, 24 };
public int[] Game_Gauge_ClearText_Clear_Rect = new int[] { 58, 44, 58, 24 };
public int[] Gauge_Soul_X = new int[] { 1184, 1184 };
public int[] Gauge_Soul_Y = new int[] { 125, 516 };
public int Gauge_Soul_X_AI = 1200;
public int Gauge_Soul_Y_AI = 140;
public int[] Gauge_Soul_Fire_X = new int[] { 1112, 1112 };
public int[] Gauge_Soul_Fire_Y = new int[] { 52, 443 };
public int Gauge_Soul_Fire_X_AI = 1143;
public int Gauge_Soul_Fire_Y_AI = 83;
public int Game_Gauge_Rainbow_Ptn;
public int Game_Gauge_Dan_Rainbow_Ptn;
public int Game_Gauge_Rainbow_Timer = 50;
@ -5778,7 +5890,24 @@ namespace TJAPlayer3
public int[] Game_AIBattle_Batch_Anime = new int[] { 260, -35 };
public int[] Game_AIBattle_Batch_Anime_Size = new int[] { 274, 274 };
public int[] Game_AIBattle_Batch_Move = new int[] { 30, 15 };
public int[] Game_AIBattle_Batch_Move = new int[] { 30, 15 };
public int[] Game_AIBattle_Judge_Meter_X = new int[] { 3, 3 };
public int[] Game_AIBattle_Judge_Meter_Y = new int[] { 55, 418 };
public int[] Game_AIBattle_Judge_Number_Perfect_X = new int[] { 107, 107 };
public int[] Game_AIBattle_Judge_Number_Perfect_Y = new int[] { 74, 437 };
public int[] Game_AIBattle_Judge_Number_Good_X = new int[] { 107, 107 };
public int[] Game_AIBattle_Judge_Number_Good_Y = new int[] { 91, 454 };
public int[] Game_AIBattle_Judge_Number_Miss_X = new int[] { 107, 107 };
public int[] Game_AIBattle_Judge_Number_Miss_Y = new int[] { 108, 471 };
public int[] Game_AIBattle_Judge_Number_Roll_X = new int[] { 107, 107 };
public int[] Game_AIBattle_Judge_Number_Roll_Y = new int[] { 125, 488 };
public int[] Game_AIBattle_Judge_Number_Interval = new int[] { 10, 0 };
#endregion
#endregion

View File

@ -404,11 +404,13 @@ namespace TJAPlayer3
Taiko_Background[9] = TxC(GAME + TAIKO + @"AI_Background.png");
Taiko_Background[10] = TxC(GAME + TAIKO + @"Boss_Background.png");
Taiko_Frame = new CTexture[4];
Taiko_Frame = new CTexture[6];
Taiko_Frame[0] = TxC(GAME + TAIKO + @"1P_Frame.png");
Taiko_Frame[1] = TxC(GAME + TAIKO + @"2P_Frame.png");
Taiko_Frame[2] = TxC(GAME + TAIKO + @"Tower_Frame.png");
Taiko_Frame[3] = TxC(GAME + TAIKO + @"Tokkun_Frame.png");
Taiko_Frame[4] = TxC(GAME + TAIKO + @"2P_None_Frame.png");
Taiko_Frame[5] = TxC(GAME + TAIKO + @"AI_Frame.png");
Taiko_PlayerNumber = new CTexture[2];
Taiko_PlayerNumber[0] = TxC(GAME + TAIKO + @"1P_PlayerNumber.png");
@ -873,6 +875,11 @@ namespace TJAPlayer3
AIBattle_Batch_Base = TxC(GAME + AIBATTLE + @"Batch_Base.png");
AIBattle_Batch = TxC(GAME + AIBATTLE + @"Batch.png");
AIBattle_Judge_Meter[0] = TxC(GAME + AIBATTLE + @"Judge_Meter.png");
AIBattle_Judge_Meter[1] = TxC(GAME + AIBATTLE + @"Judge_Meter_AI.png");
AIBattle_Judge_Number = TxC(GAME + AIBATTLE + @"Judge_Number.png");
#endregion
#endregion
@ -2045,7 +2052,10 @@ namespace TJAPlayer3
AIBattle_SectionTime_Bar_Normal,
AIBattle_SectionTime_Bar_Finish,
AIBattle_Batch_Base,
AIBattle_Batch;
AIBattle_Batch,
AIBattle_Judge_Number;
public CTexture[] AIBattle_Judge_Meter = new CTexture[2];
#endregion

View File

@ -241,7 +241,7 @@ namespace TJAPlayer3
}
else
{
if (TJAPlayer3.stage選曲.r現在選択中のスコア..nレベル[n現在の選択行[0] - 2] > 0)
if (TJAPlayer3.stage選曲.r現在選択中のスコア..nレベル[n現在の選択行[i] - 2] > 0)
{
//TJAPlayer3.stage選曲.ctDonchan_Jump[0].t開始(0, TJAPlayer3.Tx.SongSelect_Donchan_Jump.Length - 1, 1000 / 45, TJAPlayer3.Timer);

View File

@ -218,8 +218,10 @@ namespace TJAPlayer3
/// <param name="bAutoPlay"></param>
/// <param name="delta"></param>
public void Add( E楽器パート part, STAUTOPLAY bAutoPlay, long delta, int player )
{
double rev = 1.0;
{
if (TJAPlayer3.ConfigIni.bAIBattleMode && player == 1) return;
double rev = 1.0;
delta = (long)(delta * TJAPlayer3.stage選曲.actPlayOption.tGetModMultiplier(CActPlayOption.EBalancingType.SCORE, false, player));
@ -257,7 +259,9 @@ namespace TJAPlayer3
public void BonusAdd( int player )
{
for( int sc = 0; sc < 1; sc++ )
if (TJAPlayer3.ConfigIni.bAIBattleMode && player == 1) return;
for ( int sc = 0; sc < 1; sc++ )
{
for( int i = 0; i < 256; i++ )
{

View File

@ -1,4 +1,5 @@
using System;
using System.Drawing;
using System.Collections.Generic;
using System.Linq;
using System.Text;
@ -115,7 +116,7 @@ namespace TJAPlayer3
for (int i = 0; i < TJAPlayer3.stage演奏ドラム画面.NowAIBattleSectionCount; i++)
{
var section = TJAPlayer3.stage演奏ドラム画面.AIBattleSections[i];
int upDown = (i % 2);
@ -181,6 +182,41 @@ namespace TJAPlayer3
}
}
for (int player = 0; player < 2; player++)
{
TJAPlayer3.Tx.AIBattle_Judge_Meter[player]?.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_AIBattle_Judge_Meter_X[player], TJAPlayer3.Skin.Game_AIBattle_Judge_Meter_Y[player]);
int[] numArr = new int[4]
{
TJAPlayer3.stage演奏ドラム画面.CChartScore[player].nGreat,
TJAPlayer3.stage演奏ドラム画面.CChartScore[player].nGood,
TJAPlayer3.stage演奏ドラム画面.CChartScore[player].nMiss,
TJAPlayer3.stage演奏ドラム画面.CChartScore[player].nRoll
};
int[] num_x = new int[4]
{
TJAPlayer3.Skin.Game_AIBattle_Judge_Number_Perfect_X[player],
TJAPlayer3.Skin.Game_AIBattle_Judge_Number_Good_X[player],
TJAPlayer3.Skin.Game_AIBattle_Judge_Number_Miss_X[player],
TJAPlayer3.Skin.Game_AIBattle_Judge_Number_Roll_X[player]
};
int[] num_y = new int[4]
{
TJAPlayer3.Skin.Game_AIBattle_Judge_Number_Perfect_Y[player],
TJAPlayer3.Skin.Game_AIBattle_Judge_Number_Good_Y[player],
TJAPlayer3.Skin.Game_AIBattle_Judge_Number_Miss_Y[player],
TJAPlayer3.Skin.Game_AIBattle_Judge_Number_Roll_Y[player]
};
for (int i = 0; i < 4; i++)
{
DrawJudgeNumber(num_x[i], num_y[i], numArr[i]);
}
}
return 0;
}
@ -190,6 +226,24 @@ namespace TJAPlayer3
private CCounter BarFlashCounter;
public CCounter BatchAnimeCounter;
private void DrawJudgeNumber(int x, int y, int num)
{
int[] nums = C変換.SeparateDigits(num);
for (int j = 0; j < nums.Length; j++)
{
float offset = j - (nums.Length / 2.0f);
float width = TJAPlayer3.Tx.AIBattle_Judge_Number.sz画像サイズ.Width / 10.0f;
float height = TJAPlayer3.Tx.AIBattle_Judge_Number.sz画像サイズ.Height;
float _x = x - (TJAPlayer3.Skin.Game_AIBattle_Judge_Number_Interval[0] * offset);
float _y = y - (TJAPlayer3.Skin.Game_AIBattle_Judge_Number_Interval[1] * offset);
TJAPlayer3.Tx.AIBattle_Judge_Number.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, _x + (width / 2), _y + (height / 2),
new RectangleF(width * nums[j], 0, width, height));
}
}
#endregion
}
}

View File

@ -235,7 +235,8 @@ namespace TJAPlayer3
}
for( int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++ )
{
{
if (TJAPlayer3.ConfigIni.bAIBattleMode && i == 1) break;
ModIcons.tDisplayMods(TJAPlayer3.Skin.Game_Taiko_ModIcons_X[i], TJAPlayer3.Skin.Game_Taiko_ModIcons_Y[i], i);

View File

@ -187,6 +187,12 @@ namespace TJAPlayer3
if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Tower || TJAPlayer3.ConfigIni.bTokkunMode)
return 0;
float scale = 1.0f;
if (TJAPlayer3.ConfigIni.bAIBattleMode)
{
scale = 0.8f;
}
#region [Gauge base]
if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan)
@ -219,7 +225,7 @@ namespace TJAPlayer3
}
else
{
if (TJAPlayer3.stage演奏ドラム画面.bDoublePlay)
if (TJAPlayer3.stage演奏ドラム画面.bDoublePlay && !TJAPlayer3.ConfigIni.bAIBattleMode)
{
TJAPlayer3.Tx.Gauge_Base[1]?.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Gauge_X[1], TJAPlayer3.Skin.Game_Gauge_Y[1],
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]));
@ -231,8 +237,27 @@ namespace TJAPlayer3
}
else
{
TJAPlayer3.Tx.Gauge_Base[0]?.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Gauge_X[0], TJAPlayer3.Skin.Game_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]));
int x;
int y;
if (TJAPlayer3.ConfigIni.bAIBattleMode)
{
x = TJAPlayer3.Skin.Game_Gauge_X_AI;
y = TJAPlayer3.Skin.Game_Gauge_Y_AI;
}
else
{
x = TJAPlayer3.Skin.Game_Gauge_X[0];
y = TJAPlayer3.Skin.Game_Gauge_Y[0];
}
if (TJAPlayer3.Tx.Gauge_Base[0] != null)
{
TJAPlayer3.Tx.Gauge_Base[0].vc拡大縮小倍率.X = scale;
TJAPlayer3.Tx.Gauge_Base[0].vc拡大縮小倍率.Y = scale;
TJAPlayer3.Tx.Gauge_Base[0].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]));
}
}
}
@ -242,27 +267,39 @@ namespace TJAPlayer3
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 = TJAPlayer3.Skin.Game_Gauge_X[0];
y = TJAPlayer3.Skin.Game_Gauge_Y[0];
}
if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan)
{
if (TJAPlayer3.P1IsBlue())
TJAPlayer3.Tx.Gauge_Dan[5]?.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Gauge_X[0], TJAPlayer3.Skin.Game_Gauge_Y[0], new Rectangle(0, 0, nRectX, TJAPlayer3.Skin.Game_Gauge_Rect[3]));
TJAPlayer3.Tx.Gauge_Dan[5]?.t2D描画(TJAPlayer3.app.Device, x, y, new Rectangle(0, 0, nRectX, TJAPlayer3.Skin.Game_Gauge_Rect[3]));
else
TJAPlayer3.Tx.Gauge_Dan[1]?.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Gauge_X[0], TJAPlayer3.Skin.Game_Gauge_Y[0], new Rectangle(0, 0, nRectX, TJAPlayer3.Skin.Game_Gauge_Rect[3]));
TJAPlayer3.Tx.Gauge_Dan[1]?.t2D描画(TJAPlayer3.app.Device, x, y, new Rectangle(0, 0, nRectX, 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, TJAPlayer3.Skin.Game_Gauge_X[0] + (TJAPlayer3.DTX.Dan_C[i].GetValue(false) / 2 * nWidth), TJAPlayer3.Skin.Game_Gauge_Y[0], new Rectangle(0, 0, nRectX - (TJAPlayer3.DTX.Dan_C[i].GetValue(false) / 2 * nWidth), TJAPlayer3.Skin.Game_Gauge_Rect[3]));
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 - (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, TJAPlayer3.Skin.Game_Gauge_X[0], TJAPlayer3.Skin.Game_Gauge_Y[0], new Rectangle(0, 0, TJAPlayer3.DTX.Dan_C[i].GetValue(false) / 2 * nWidth, TJAPlayer3.Skin.Game_Gauge_Rect[3]));
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;
}
@ -272,9 +309,17 @@ namespace TJAPlayer3
else
{
if (TJAPlayer3.P1IsBlue())
TJAPlayer3.Tx.Gauge[2]?.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Gauge_X[0], TJAPlayer3.Skin.Game_Gauge_Y[0], new Rectangle(0, 0, nRectX, TJAPlayer3.Skin.Game_Gauge_Rect[3]));
TJAPlayer3.Tx.Gauge[2]?.t2D描画(TJAPlayer3.app.Device, x, y, new Rectangle(0, 0, nRectX, TJAPlayer3.Skin.Game_Gauge_Rect[3]));
else
TJAPlayer3.Tx.Gauge[0]?.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Gauge_X[0], TJAPlayer3.Skin.Game_Gauge_Y[0], new Rectangle(0, 0, nRectX, TJAPlayer3.Skin.Game_Gauge_Rect[3]));
{
if (TJAPlayer3.Tx.Gauge[0] != null)
{
TJAPlayer3.Tx.Gauge[0].vc拡大縮小倍率.X = scale;
TJAPlayer3.Tx.Gauge[0].vc拡大縮小倍率.Y = scale;
TJAPlayer3.Tx.Gauge[0].t2D描画(TJAPlayer3.app.Device, x, y, new Rectangle(0, 0, nRectX, TJAPlayer3.Skin.Game_Gauge_Rect[3]));
}
}
}
if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Dan && db現在のゲージ値[0] >= 80.0 && db現在のゲージ値[0] < 100.0)
@ -286,8 +331,11 @@ namespace TJAPlayer3
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, TJAPlayer3.Skin.Game_Gauge_X[0], TJAPlayer3.Skin.Game_Gauge_Y[0],
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]));
}
@ -304,14 +352,20 @@ namespace TJAPlayer3
this.ct虹透明度.t進行Loop();
if(TJAPlayer3.Tx.Gauge_Rainbow[ this.ct虹アニメ.n現在の値 ] != null )
{
TJAPlayer3.Tx.Gauge_Rainbow[this.ct虹アニメ.n現在の値].Opacity = 255;
TJAPlayer3.Tx.Gauge_Rainbow[this.ct虹アニメ.n現在の値].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Gauge_X[0], TJAPlayer3.Skin.Game_Gauge_Y[0] + (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan ? (TJAPlayer3.Skin.Game_Gauge_Rect[3] / 2) : 0),
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;
TJAPlayer3.Tx.Gauge_Rainbow[this.ct虹アニメ.n現在の値].Opacity = 255;
TJAPlayer3.Tx.Gauge_Rainbow[this.ct虹アニメ.n現在の値].t2D描画(TJAPlayer3.app.Device, x, y + (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan ? (TJAPlayer3.Skin.Game_Gauge_Rect[3] / 2) : 0),
new RectangleF(0,
TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan ? 22 : 0,
TJAPlayer3.Tx.Gauge_Rainbow[this.ct虹アニメ.n現在の値].szテクスチャサイズ.Width,
TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan ? 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, TJAPlayer3.Skin.Game_Gauge_X[0], TJAPlayer3.Skin.Game_Gauge_Y[0] + (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan ? 22 : 0),
TJAPlayer3.Tx.Gauge_Rainbow[].t2D描画(TJAPlayer3.app.Device, x, y + (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan ? 22 : 0),
new RectangleF(0,
TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan ? 22 : 0,
TJAPlayer3.Tx.Gauge_Rainbow[].szテクスチャサイズ.Width,
@ -322,20 +376,36 @@ namespace TJAPlayer3
#endregion
TJAPlayer3.Tx.Gauge_Line[0].t2D描画( TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Gauge_X[0], TJAPlayer3.Skin.Game_Gauge_X[1]);
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[ Clearicon ]
if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Dan)
{
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, TJAPlayer3.Skin.Game_Gauge_ClearText_X[0], TJAPlayer3.Skin.Game_Gauge_ClearText_Y[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, TJAPlayer3.Skin.Game_Gauge_ClearText_X[0], TJAPlayer3.Skin.Game_Gauge_ClearText_Y[0],
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]));
}
}
@ -347,7 +417,7 @@ namespace TJAPlayer3
#region [ Gauge 2P ]
if( TJAPlayer3.stage演奏ドラム画面.bDoublePlay && TJAPlayer3.Tx.Gauge[1] != null )
if( TJAPlayer3.stage演奏ドラム画面.bDoublePlay && !TJAPlayer3.ConfigIni.bAIBattleMode && TJAPlayer3.Tx.Gauge[1] != null )
{
TJAPlayer3.Tx.Gauge[1].t2D描画( TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Gauge_X[1], TJAPlayer3.Skin.Game_Gauge_Y[1], new Rectangle( 0, 0, nRectX2P, TJAPlayer3.Skin.Game_Gauge_Rect[3]) );
if (db現在のゲージ値[1] >= 80.0 && db現在のゲージ値[1] < 100.0)
@ -399,10 +469,29 @@ namespace TJAPlayer3
int soulfire_height = TJAPlayer3.Tx.Gauge_Soul_Fire.szテクスチャサイズ.Height;
for ( int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++ )
{
if( this.db現在のゲージ値[ i ] >= 100.0)
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
{
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.t2D描画( TJAPlayer3.app.Device, TJAPlayer3.Skin.Gauge_Soul_Fire_X[i], TJAPlayer3.Skin.Gauge_Soul_Fire_Y[i], new Rectangle(soulfire_width * ( this.ct炎.n現在の値 ), 0, soulfire_width, soulfire_height) );
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) );
}
}
}
@ -412,13 +501,31 @@ namespace TJAPlayer3
int soul_height = TJAPlayer3.Tx.Gauge_Soul.szテクスチャサイズ.Height / 2;
for( int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++ )
{
if( this.db現在のゲージ値[ i ] >= 80.0)
if (TJAPlayer3.ConfigIni.bAIBattleMode && i == 1) break;
int x;
int y;
if (TJAPlayer3.ConfigIni.bAIBattleMode)
{
TJAPlayer3.Tx.Gauge_Soul.t2D描画( TJAPlayer3.app.Device, TJAPlayer3.Skin.Gauge_Soul_X[i], TJAPlayer3.Skin.Gauge_Soul_Y[i], new Rectangle( 0, 0, TJAPlayer3.Tx.Gauge_Soul.szテクスチャサイズ.Width, soul_height) );
x = TJAPlayer3.Skin.Gauge_Soul_X_AI;
y = TJAPlayer3.Skin.Gauge_Soul_Y_AI;
}
else
{
TJAPlayer3.Tx.Gauge_Soul.t2D描画( TJAPlayer3.app.Device, TJAPlayer3.Skin.Gauge_Soul_X[i], TJAPlayer3.Skin.Gauge_Soul_Y[i], new Rectangle( 0, soul_height, TJAPlayer3.Tx.Gauge_Soul.szテクスチャサイズ.Width, soul_height) );
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) );
}
}
}

View File

@ -73,7 +73,9 @@ namespace TJAPlayer3
if( !base.b活性化してない )
{
for( int i = 0; i < 2; i++ )
{
{
if (TJAPlayer3.ConfigIni.bAIBattleMode) break;
int j = i;
if (TJAPlayer3.PlayerSide == 1 && TJAPlayer3.ConfigIni.nPlayerCount == 1)
j = 1;

View File

@ -61,7 +61,7 @@ namespace TJAPlayer3
//CDTXMania.act文字コンソール.tPrint(0, 0, C文字コンソール.Eフォント種別.白, this.ctボーナス加算タイマ[0].n現在の値.ToString());
base.t小文字表示(TJAPlayer3.Skin.Game_Score_X[0], TJAPlayer3.Skin.Game_Score_Y[0], string.Format( "{0,7:######0}", this.n現在表示中のスコア[ 0 ].Taiko ), 0 , 256, 0);
if( TJAPlayer3.stage演奏ドラム画面.bDoublePlay ) base.t小文字表示(TJAPlayer3.Skin.Game_Score_X[1], TJAPlayer3.Skin.Game_Score_Y[1], string.Format( "{0,7:######0}", this.n現在表示中のスコア[ 1 ].Taiko ), 0 , 256, 1);
if( TJAPlayer3.stage演奏ドラム画面.bDoublePlay && !TJAPlayer3.ConfigIni.bAIBattleMode) base.t小文字表示(TJAPlayer3.Skin.Game_Score_X[1], TJAPlayer3.Skin.Game_Score_Y[1], string.Format( "{0,7:######0}", this.n現在表示中のスコア[ 1 ].Taiko ), 0 , 256, 1);
for( int i = 0; i < 256; i++ )
{

View File

@ -600,11 +600,18 @@ namespace TJAPlayer3
TJAPlayer3.Tx.Taiko_Frame[3]?.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_Frame_X[0], TJAPlayer3.Skin.Game_Taiko_Frame_Y[0]);
else if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Tower && TJAPlayer3.Tx.Taiko_Frame[2] != null)
TJAPlayer3.Tx.Taiko_Frame[2]?.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_Frame_X[0], TJAPlayer3.Skin.Game_Taiko_Frame_Y[0]);
else if (TJAPlayer3.ConfigIni.bAIBattleMode && TJAPlayer3.Tx.Taiko_Frame[5] != null)
TJAPlayer3.Tx.Taiko_Frame[5]?.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_Frame_X[0], TJAPlayer3.Skin.Game_Taiko_Frame_Y[0]);
else
TJAPlayer3.Tx.Taiko_Frame[0]?.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_Frame_X[0], TJAPlayer3.Skin.Game_Taiko_Frame_Y[0]);
if (TJAPlayer3.stage演奏ドラム画面.bDoublePlay)
TJAPlayer3.Tx.Taiko_Frame[1]?.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_Frame_X[1], TJAPlayer3.Skin.Game_Taiko_Frame_Y[1]);
{
if (TJAPlayer3.ConfigIni.bAIBattleMode)
TJAPlayer3.Tx.Taiko_Frame[4]?.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_Frame_X[1], TJAPlayer3.Skin.Game_Taiko_Frame_Y[1]);
else
TJAPlayer3.Tx.Taiko_Frame[1]?.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_Frame_X[1], TJAPlayer3.Skin.Game_Taiko_Frame_Y[1]);
}
}
var nTime = (long)(CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0));

View File

@ -171,6 +171,10 @@ Game_Gauge_X=492,492
Game_Gauge_Y=144,532
Game_Gauge_X_AI=650
Game_Gauge_Y_AI=153
Game_Gauge_Rect=0,0,700,44
@ -184,15 +188,25 @@ Game_Gauge_ClearText_Clear_Rect=58,44,58,24
Gauge_Soul_X=1184,1184
Gauge_Soul_Y=125,516
Gauge_Soul_X_AI=1200
Gauge_Soul_Y_AI=140
Gauge_Soul_Fire_X=1112,1112
Gauge_Soul_Fire_Y=52,443
Gauge_Soul_Fire_X_AI=1143
Gauge_Soul_Fire_Y_AI=83
Game_Balloon_Combo_X=253,253
Game_Balloon_Combo_Y=-11,538
@ -416,4 +430,26 @@ Game_AIBattle_Batch_Size=70,70
Game_AIBattle_Batch_Anime=397,102
Game_AIBattle_Batch_Anime_Size=274,274
Game_AIBattle_Batch_Move=30,15
Game_AIBattle_Batch_Move=30,15
Game_AIBattle_Judge_Meter_X=3,3
Game_AIBattle_Judge_Meter_Y=55,418
Game_AIBattle_Judge_Number_Perfect_X=107,107
Game_AIBattle_Judge_Number_Perfect_Y=74,437
Game_AIBattle_Judge_Number_Good_X=107,107
Game_AIBattle_Judge_Number_Good_Y=91,454
Game_AIBattle_Judge_Number_Miss_X=107,107
Game_AIBattle_Judge_Number_Miss_Y=108,471
Game_AIBattle_Judge_Number_Roll_X=107,107
Game_AIBattle_Judge_Number_Roll_Y=125,488
Game_AIBattle_Judge_Number_Interval=10,0

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

View File

@ -6,7 +6,13 @@
--func:SetScale(xscale, yscale, "filename");
--func:SetColor(r, g, b, "filename");
inAnimeCounter = -20
local inAnimeCounter = -20
local animeCounter = 0
local nowAnimeFrame = 0
local maxAnimeFrame = 5
function clearIn(player)
end
@ -16,14 +22,31 @@ end
function init()
func:AddGraph("Base.png")
func:AddGraph("Frame.png")
for i = 0 , 18 do
func:AddGraph("Up_1P/"..tostring(i)..".png")
func:AddGraph("Up_2P/"..tostring(i)..".png")
func:AddGraph("Down_1P/"..tostring(i)..".png")
func:AddGraph("Down_2P/"..tostring(i)..".png")
end
for i = 0 , maxAnimeFrame do
func:AddGraph("Animation/"..tostring(i)..".png")
end
end
function update()
inAnimeCounter = inAnimeCounter + (20 * deltaTime)
animeCounter = animeCounter + (10 * deltaTime)
nowAnimeFrame = math.floor(animeCounter+0.5)
if nowAnimeFrame > maxAnimeFrame then
animeCounter = 0;
nowAnimeFrame = 0;
end
end
function draw()
@ -32,14 +55,36 @@ function draw()
for i = 0 , 18 do
pos = i - 9
if 9 - math.abs(pos) <= inAnimeCounter then
x = -32 + (71 * i)
y = 536
offset1 = -(math.sin((pos / 9.0) * math.pi) * 6)
offset2 = 0
if pos > 0 then
offset2 = (math.cos((pos / 9.0) * math.pi) * 5)
elseif pos < 0 then
offset2 = -(math.cos((pos / 9.0) * math.pi) * 5)
end
up_x = 504 + (61 * pos) + offset1 + offset2;
up_y = 38
down_x = -32 + (71 * i)
down_y = 536
if pos <= battleState then
func:DrawGraph(x, y, "Down_1P/"..tostring(i)..".png")
func:DrawGraph(up_x, up_y, "Up_1P/"..tostring(i)..".png")
func:DrawGraph(down_x, down_y, "Down_1P/"..tostring(i)..".png")
else
func:DrawGraph(x, y, "Down_2P/"..tostring(i)..".png")
func:DrawGraph(up_x, up_y, "Up_2P/"..tostring(i)..".png")
func:DrawGraph(down_x, down_y, "Down_2P/"..tostring(i)..".png")
end
end
end
if inAnimeCounter > 9 then
func:DrawGraph(0, 0, "Frame.png")
func:DrawGraph(0, 0, "Animation/"..tostring(nowAnimeFrame)..".png")
end
end

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB