2023-04-01 16:29:28 +03:00
|
|
|
using Demonics;
|
2021-11-03 12:03:53 +01:00
|
|
|
using TMPro;
|
2021-11-02 20:49:10 +01:00
|
|
|
using UnityEngine;
|
2022-04-05 16:26:51 +02:00
|
|
|
using UnityEngine.EventSystems;
|
|
|
|
|
using UnityEngine.UI;
|
2023-12-04 14:02:21 +02:00
|
|
|
using static TrainingSettings;
|
2021-11-02 16:27:29 +01:00
|
|
|
|
|
|
|
|
public class TrainingMenu : BaseMenu
|
|
|
|
|
{
|
2022-05-17 22:37:43 +02:00
|
|
|
[SerializeField] private GameObject _p1 = default;
|
2023-04-01 16:29:28 +03:00
|
|
|
[SerializeField] private GameObject _framedataMeterGroup = default;
|
2023-04-28 14:02:53 +03:00
|
|
|
[SerializeField] private GameObject _inputDisplayOne = default;
|
|
|
|
|
[SerializeField] private GameObject _inputDisplayTwo = default;
|
2024-02-05 16:28:15 +02:00
|
|
|
[SerializeField] private CanvasGroup _canvasGroup = default;
|
2023-04-02 15:59:44 +03:00
|
|
|
[SerializeField] private FrameMeterSystem _frameMeterSystem = default;
|
2022-10-30 19:19:00 +02:00
|
|
|
[SerializeField] private InputHistory _inputHistoryOne = default;
|
|
|
|
|
[SerializeField] private InputHistory _inputHistoryTwo = default;
|
2022-05-17 22:37:43 +02:00
|
|
|
[SerializeField] private TextMeshProUGUI _startupOneText = default;
|
|
|
|
|
[SerializeField] private TextMeshProUGUI _activeOneText = default;
|
|
|
|
|
[SerializeField] private TextMeshProUGUI _recoveryOneText = default;
|
|
|
|
|
[SerializeField] private TextMeshProUGUI _hitTypeOneText = default;
|
2022-06-16 13:30:10 +02:00
|
|
|
[SerializeField] private TextMeshProUGUI _damageOneText = default;
|
2022-10-16 11:57:35 +02:00
|
|
|
[SerializeField] private TextMeshProUGUI _damageComboOneText = default;
|
2022-05-17 22:37:43 +02:00
|
|
|
[SerializeField] private TextMeshProUGUI _stateOneText = default;
|
|
|
|
|
[SerializeField] private TextMeshProUGUI _startupTwoText = default;
|
|
|
|
|
[SerializeField] private TextMeshProUGUI _activeTwoText = default;
|
|
|
|
|
[SerializeField] private TextMeshProUGUI _recoveryTwoText = default;
|
|
|
|
|
[SerializeField] private TextMeshProUGUI _hitTypeTwoText = default;
|
2022-06-16 13:30:10 +02:00
|
|
|
[SerializeField] private TextMeshProUGUI _damageTwoText = default;
|
2022-10-16 11:57:35 +02:00
|
|
|
[SerializeField] private TextMeshProUGUI _damageComboTwoText = default;
|
2022-05-17 22:37:43 +02:00
|
|
|
[SerializeField] private TextMeshProUGUI _stateTwoText = default;
|
|
|
|
|
[SerializeField] private Canvas[] _uiCanvases = default;
|
|
|
|
|
[SerializeField] private BaseMenu _trainingPauseMenu = default;
|
|
|
|
|
[SerializeField] private TrainingSubOption[] _trainingSubOptions = default;
|
|
|
|
|
[Header("Selectors")]
|
|
|
|
|
private int _currentTrainingSubOptionIndex;
|
2024-02-05 16:28:15 +02:00
|
|
|
public CanvasGroup CanvasGroup { get { return _canvasGroup; } private set { } }
|
2021-11-14 16:12:47 +01:00
|
|
|
|
2022-10-16 11:57:35 +02:00
|
|
|
public void ConfigurePlayers(Player playerOne, Player playerTwo)
|
|
|
|
|
{
|
2023-01-17 00:02:29 +02:00
|
|
|
|
2022-10-16 11:57:35 +02:00
|
|
|
}
|
|
|
|
|
|
2022-08-10 19:47:52 +03:00
|
|
|
public void ChangePage(bool left)
|
2022-05-17 22:37:43 +02:00
|
|
|
{
|
2022-08-10 19:47:52 +03:00
|
|
|
if (left)
|
2022-05-17 22:37:43 +02:00
|
|
|
{
|
|
|
|
|
if (_currentTrainingSubOptionIndex == 0)
|
|
|
|
|
{
|
|
|
|
|
_currentTrainingSubOptionIndex = _trainingSubOptions.Length - 1;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
_currentTrainingSubOptionIndex--;
|
|
|
|
|
}
|
|
|
|
|
for (int i = 0; i < _trainingSubOptions.Length; i++)
|
|
|
|
|
{
|
|
|
|
|
if (i != _currentTrainingSubOptionIndex)
|
|
|
|
|
{
|
|
|
|
|
_trainingSubOptions[i].Disable();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
_trainingSubOptions[_currentTrainingSubOptionIndex].Activate();
|
|
|
|
|
}
|
2022-08-10 19:47:52 +03:00
|
|
|
else
|
2022-05-17 22:37:43 +02:00
|
|
|
{
|
2022-08-10 19:47:52 +03:00
|
|
|
|
2022-05-17 22:37:43 +02:00
|
|
|
if (_currentTrainingSubOptionIndex == _trainingSubOptions.Length - 1)
|
|
|
|
|
{
|
|
|
|
|
_currentTrainingSubOptionIndex = 0;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
_currentTrainingSubOptionIndex++;
|
|
|
|
|
}
|
|
|
|
|
for (int i = 0; i < _trainingSubOptions.Length; i++)
|
|
|
|
|
{
|
|
|
|
|
if (i != _currentTrainingSubOptionIndex)
|
|
|
|
|
{
|
|
|
|
|
_trainingSubOptions[i].Disable();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
_trainingSubOptions[_currentTrainingSubOptionIndex].Activate();
|
|
|
|
|
}
|
|
|
|
|
}
|
2022-10-30 19:19:00 +02:00
|
|
|
public void SetInputHistory(int value)
|
|
|
|
|
{
|
|
|
|
|
switch (value)
|
|
|
|
|
{
|
|
|
|
|
case 0:
|
|
|
|
|
_inputHistoryOne.transform.GetChild(0).gameObject.SetActive(false);
|
|
|
|
|
_inputHistoryTwo.transform.GetChild(0).gameObject.SetActive(false);
|
|
|
|
|
break;
|
|
|
|
|
case 1:
|
|
|
|
|
_inputHistoryOne.transform.GetChild(0).gameObject.SetActive(true);
|
|
|
|
|
_inputHistoryTwo.transform.GetChild(0).gameObject.SetActive(true);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
2022-05-17 22:37:43 +02:00
|
|
|
public void SetHitboxes(int value)
|
|
|
|
|
{
|
|
|
|
|
if (value == 1)
|
|
|
|
|
{
|
|
|
|
|
TrainingSettings.ShowHitboxes = true;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
TrainingSettings.ShowHitboxes = false;
|
|
|
|
|
}
|
|
|
|
|
}
|
2021-11-02 16:27:29 +01:00
|
|
|
|
2022-05-17 22:37:43 +02:00
|
|
|
public void SetSlowdown(int value)
|
|
|
|
|
{
|
|
|
|
|
switch (value)
|
|
|
|
|
{
|
|
|
|
|
case 0:
|
2022-12-04 21:35:31 +02:00
|
|
|
GameplayManager.Instance.GameSpeed = 1.0f;
|
2022-05-17 22:37:43 +02:00
|
|
|
break;
|
|
|
|
|
case 1:
|
2022-12-04 21:35:31 +02:00
|
|
|
GameplayManager.Instance.GameSpeed = 0.75f;
|
2022-05-17 22:37:43 +02:00
|
|
|
break;
|
|
|
|
|
case 2:
|
2022-12-04 21:35:31 +02:00
|
|
|
GameplayManager.Instance.GameSpeed = 0.5f;
|
2022-05-17 22:37:43 +02:00
|
|
|
break;
|
|
|
|
|
case 3:
|
2022-12-04 21:35:31 +02:00
|
|
|
GameplayManager.Instance.GameSpeed = 0.25f;
|
2022-05-17 22:37:43 +02:00
|
|
|
break;
|
|
|
|
|
case 4:
|
2022-12-04 21:35:31 +02:00
|
|
|
GameplayManager.Instance.GameSpeed = 0.10f;
|
2022-05-17 22:37:43 +02:00
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
2021-11-03 20:44:06 +01:00
|
|
|
|
2021-11-06 19:36:44 +01:00
|
|
|
|
2022-05-17 22:37:43 +02:00
|
|
|
public void SetCpu(int value)
|
|
|
|
|
{
|
|
|
|
|
switch (value)
|
|
|
|
|
{
|
|
|
|
|
case 0:
|
2022-06-05 14:18:44 +02:00
|
|
|
TrainingSettings.CpuOff = true;
|
2022-12-04 21:35:31 +02:00
|
|
|
GameplayManager.Instance.DeactivateCpus();
|
2022-05-17 22:37:43 +02:00
|
|
|
break;
|
|
|
|
|
case 1:
|
2022-06-05 14:18:44 +02:00
|
|
|
TrainingSettings.CpuOff = false;
|
2022-12-04 21:35:31 +02:00
|
|
|
GameplayManager.Instance.DeactivateCpus();
|
|
|
|
|
GameplayManager.Instance.ActivateCpus();
|
2022-05-17 22:37:43 +02:00
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
2021-11-06 19:36:44 +01:00
|
|
|
|
2022-05-17 22:37:43 +02:00
|
|
|
public void SetArcana(int value)
|
|
|
|
|
{
|
|
|
|
|
switch (value)
|
|
|
|
|
{
|
|
|
|
|
case 0:
|
2022-12-04 21:35:31 +02:00
|
|
|
GameplayManager.Instance.InfiniteArcana = false;
|
2022-05-17 22:37:43 +02:00
|
|
|
break;
|
|
|
|
|
case 1:
|
2022-12-04 21:35:31 +02:00
|
|
|
GameplayManager.Instance.InfiniteArcana = true;
|
2023-01-23 18:31:58 +02:00
|
|
|
CheckTrainingGauges();
|
2022-05-17 22:37:43 +02:00
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
2021-11-12 22:18:15 +01:00
|
|
|
|
2022-05-17 22:37:43 +02:00
|
|
|
public void SetAssist(int value)
|
|
|
|
|
{
|
|
|
|
|
switch (value)
|
|
|
|
|
{
|
|
|
|
|
case 0:
|
2022-12-04 21:35:31 +02:00
|
|
|
GameplayManager.Instance.InfiniteAssist = false;
|
2022-05-17 22:37:43 +02:00
|
|
|
break;
|
|
|
|
|
case 1:
|
2022-12-04 21:35:31 +02:00
|
|
|
GameplayManager.Instance.InfiniteAssist = true;
|
2023-01-23 18:31:58 +02:00
|
|
|
CheckTrainingGauges();
|
2022-05-17 22:37:43 +02:00
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
2021-12-31 18:10:28 +01:00
|
|
|
|
2022-05-17 22:37:43 +02:00
|
|
|
public void SetStance(int value)
|
|
|
|
|
{
|
|
|
|
|
switch (value)
|
|
|
|
|
{
|
|
|
|
|
case 0:
|
|
|
|
|
TrainingSettings.Stance = 0;
|
|
|
|
|
break;
|
|
|
|
|
case 1:
|
|
|
|
|
TrainingSettings.Stance = 1;
|
|
|
|
|
break;
|
|
|
|
|
case 2:
|
|
|
|
|
TrainingSettings.Stance = 2;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
2022-04-12 23:42:12 +02:00
|
|
|
|
2022-05-17 22:37:43 +02:00
|
|
|
public void SetHealth(int value)
|
|
|
|
|
{
|
|
|
|
|
switch (value)
|
|
|
|
|
{
|
|
|
|
|
case 0:
|
2022-12-04 21:35:31 +02:00
|
|
|
GameplayManager.Instance.InfiniteHealth = false;
|
2022-05-17 22:37:43 +02:00
|
|
|
break;
|
|
|
|
|
case 1:
|
2022-12-04 21:35:31 +02:00
|
|
|
GameplayManager.Instance.InfiniteHealth = true;
|
2023-01-23 18:31:58 +02:00
|
|
|
CheckTrainingGauges();
|
2022-05-17 22:37:43 +02:00
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
2022-04-12 23:42:12 +02:00
|
|
|
|
2023-01-23 18:31:58 +02:00
|
|
|
private void CheckTrainingGauges()
|
|
|
|
|
{
|
|
|
|
|
if (GameSimulation.Run)
|
|
|
|
|
{
|
|
|
|
|
GameSimulation._players[0].CurrentState.CheckTrainingComboEnd(GameSimulation._players[0], true);
|
|
|
|
|
GameSimulation._players[1].CurrentState.CheckTrainingComboEnd(GameSimulation._players[1], true);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2022-05-17 22:37:43 +02:00
|
|
|
public void SetUI(int value)
|
|
|
|
|
{
|
|
|
|
|
switch (value)
|
|
|
|
|
{
|
|
|
|
|
case 0:
|
|
|
|
|
for (int i = 0; i < _uiCanvases.Length; i++)
|
2023-10-15 03:11:44 +03:00
|
|
|
_uiCanvases[i].enabled = false;
|
2022-05-17 22:37:43 +02:00
|
|
|
break;
|
|
|
|
|
case 1:
|
|
|
|
|
for (int i = 0; i < _uiCanvases.Length; i++)
|
2023-10-15 03:11:44 +03:00
|
|
|
_uiCanvases[i].enabled = true;
|
2022-05-17 22:37:43 +02:00
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
2021-11-12 22:18:15 +01:00
|
|
|
|
2023-04-28 14:02:53 +03:00
|
|
|
public void SetInputDisplay(int value)
|
|
|
|
|
{
|
|
|
|
|
switch (value)
|
|
|
|
|
{
|
|
|
|
|
case 0:
|
|
|
|
|
_inputDisplayOne.SetActive(false);
|
|
|
|
|
_inputDisplayTwo.SetActive(false);
|
|
|
|
|
break;
|
|
|
|
|
case 1:
|
|
|
|
|
_inputDisplayOne.SetActive(true);
|
|
|
|
|
_inputDisplayTwo.SetActive(true);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2023-03-31 22:59:44 +03:00
|
|
|
public void SetFramedataMeter(int value)
|
|
|
|
|
{
|
|
|
|
|
switch (value)
|
|
|
|
|
{
|
|
|
|
|
case 0:
|
2023-04-01 16:29:28 +03:00
|
|
|
_framedataMeterGroup.SetActive(false);
|
2023-03-31 22:59:44 +03:00
|
|
|
break;
|
|
|
|
|
case 1:
|
2023-04-01 16:29:28 +03:00
|
|
|
_framedataMeterGroup.SetActive(true);
|
2023-03-31 22:59:44 +03:00
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2022-05-17 22:37:43 +02:00
|
|
|
public void SetFramedata(int value)
|
|
|
|
|
{
|
|
|
|
|
switch (value)
|
|
|
|
|
{
|
|
|
|
|
case 0:
|
|
|
|
|
_p1.SetActive(false);
|
|
|
|
|
break;
|
|
|
|
|
case 1:
|
|
|
|
|
_p1.SetActive(true);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
2021-11-12 22:18:15 +01:00
|
|
|
|
2023-04-01 16:29:28 +03:00
|
|
|
public void SetState(int isPlayerOne, string state)
|
2022-05-17 22:37:43 +02:00
|
|
|
{
|
2023-04-01 16:29:28 +03:00
|
|
|
if (isPlayerOne == 0)
|
2022-05-17 22:37:43 +02:00
|
|
|
{
|
|
|
|
|
_stateOneText.text = state;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
_stateTwoText.text = state;
|
|
|
|
|
}
|
|
|
|
|
}
|
2021-11-04 03:47:22 +01:00
|
|
|
|
2023-04-01 16:29:28 +03:00
|
|
|
public void FramedataValue(int isPlayerOne, ResultAttack attack)
|
2022-05-17 22:37:43 +02:00
|
|
|
{
|
2023-01-17 00:02:29 +02:00
|
|
|
if (attack == null)
|
|
|
|
|
{
|
|
|
|
|
return;
|
|
|
|
|
}
|
2023-04-01 16:29:28 +03:00
|
|
|
if (isPlayerOne == 0)
|
2022-05-17 22:37:43 +02:00
|
|
|
{
|
|
|
|
|
if (_startupOneText.gameObject.activeSelf)
|
|
|
|
|
{
|
|
|
|
|
_startupOneText.text = attack.startUpFrames.ToString();
|
|
|
|
|
}
|
|
|
|
|
if (_activeOneText.gameObject.activeSelf)
|
|
|
|
|
{
|
|
|
|
|
_activeOneText.text = attack.activeFrames.ToString();
|
|
|
|
|
}
|
|
|
|
|
if (_recoveryOneText.gameObject.activeSelf)
|
|
|
|
|
{
|
|
|
|
|
_recoveryOneText.text = attack.recoveryFrames.ToString();
|
|
|
|
|
}
|
|
|
|
|
if (_hitTypeOneText.gameObject.activeSelf)
|
|
|
|
|
{
|
|
|
|
|
_hitTypeOneText.text = attack.attackTypeEnum.ToString();
|
|
|
|
|
}
|
2022-06-16 13:30:10 +02:00
|
|
|
if (_damageOneText.gameObject.activeSelf)
|
|
|
|
|
{
|
|
|
|
|
_damageOneText.text = attack.damage.ToString();
|
|
|
|
|
}
|
2022-10-16 11:57:35 +02:00
|
|
|
if (_damageComboOneText.gameObject.activeSelf)
|
|
|
|
|
{
|
2023-01-19 23:25:44 +02:00
|
|
|
if (attack.comboDamage > 0)
|
|
|
|
|
{
|
|
|
|
|
_damageComboOneText.text = attack.comboDamage.ToString();
|
|
|
|
|
}
|
2022-10-16 11:57:35 +02:00
|
|
|
}
|
2022-05-17 22:37:43 +02:00
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
if (_startupTwoText.gameObject.activeSelf)
|
|
|
|
|
{
|
|
|
|
|
_startupTwoText.text = attack.startUpFrames.ToString();
|
|
|
|
|
}
|
|
|
|
|
if (_activeTwoText.gameObject.activeSelf)
|
|
|
|
|
{
|
|
|
|
|
_activeTwoText.text = attack.activeFrames.ToString();
|
|
|
|
|
}
|
|
|
|
|
if (_recoveryTwoText.gameObject.activeSelf)
|
|
|
|
|
{
|
|
|
|
|
_recoveryTwoText.text = attack.recoveryFrames.ToString();
|
|
|
|
|
}
|
|
|
|
|
if (_hitTypeTwoText.gameObject.activeSelf)
|
|
|
|
|
{
|
|
|
|
|
_hitTypeTwoText.text = attack.attackTypeEnum.ToString();
|
|
|
|
|
}
|
2022-06-16 13:30:10 +02:00
|
|
|
if (_damageTwoText.gameObject.activeSelf)
|
|
|
|
|
{
|
|
|
|
|
_damageTwoText.text = attack.damage.ToString();
|
|
|
|
|
}
|
2022-10-16 11:57:35 +02:00
|
|
|
if (_damageComboTwoText.gameObject.activeSelf)
|
|
|
|
|
{
|
2023-01-19 23:25:44 +02:00
|
|
|
if (attack.comboDamage > 0)
|
|
|
|
|
{
|
|
|
|
|
_damageComboTwoText.text = attack.comboDamage.ToString();
|
|
|
|
|
}
|
2022-10-16 11:57:35 +02:00
|
|
|
}
|
2022-05-17 22:37:43 +02:00
|
|
|
}
|
|
|
|
|
}
|
2021-12-05 20:23:50 +01:00
|
|
|
|
2023-04-01 16:29:28 +03:00
|
|
|
public void FramedataMeterValue(int isPlayerOne, FramedataTypesEnum framedataEnum)
|
|
|
|
|
{
|
2023-04-02 15:59:44 +03:00
|
|
|
_frameMeterSystem.AddFrame(isPlayerOne, framedataEnum);
|
|
|
|
|
}
|
|
|
|
|
public void FramedataMeterRun()
|
|
|
|
|
{
|
2023-04-06 15:16:02 +03:00
|
|
|
if (!_frameMeterSystem.gameObject.activeInHierarchy)
|
|
|
|
|
return;
|
|
|
|
|
if (Time.timeScale == 0)
|
|
|
|
|
return;
|
2023-04-02 15:59:44 +03:00
|
|
|
_frameMeterSystem.RunFrame();
|
2023-04-01 16:29:28 +03:00
|
|
|
}
|
|
|
|
|
|
2022-05-17 22:37:43 +02:00
|
|
|
public void SetBlock(int value)
|
|
|
|
|
{
|
2023-12-04 14:02:21 +02:00
|
|
|
TrainingSettings.Block = (BlockType)value;
|
2022-05-17 22:37:43 +02:00
|
|
|
}
|
2021-12-16 15:18:17 +01:00
|
|
|
|
2022-05-17 22:37:43 +02:00
|
|
|
public void SetOnHit(int value)
|
|
|
|
|
{
|
|
|
|
|
switch (value)
|
|
|
|
|
{
|
|
|
|
|
case 0:
|
|
|
|
|
TrainingSettings.OnHit = false;
|
|
|
|
|
break;
|
|
|
|
|
case 1:
|
|
|
|
|
TrainingSettings.OnHit = true;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
2021-12-31 19:34:06 +01:00
|
|
|
|
2023-12-04 14:02:21 +02:00
|
|
|
public void SetBlockCount(int value)
|
|
|
|
|
{
|
|
|
|
|
TrainingSettings.BlockCount = value + 1;
|
|
|
|
|
TrainingSettings.BlockCountCurrent = TrainingSettings.BlockCount;
|
|
|
|
|
}
|
|
|
|
|
|
2022-05-17 22:37:43 +02:00
|
|
|
public void ResetTrainingOptions()
|
|
|
|
|
{
|
|
|
|
|
TrainingSettings.ShowHitboxes = false;
|
2022-12-04 21:35:31 +02:00
|
|
|
GameplayManager.Instance.InfiniteHealth = false;
|
|
|
|
|
GameplayManager.Instance.InfiniteArcana = false;
|
|
|
|
|
GameplayManager.Instance.GameSpeed = 1.0f;
|
|
|
|
|
GameplayManager.Instance.ActivateCpus();
|
2022-05-17 22:37:43 +02:00
|
|
|
}
|
2021-11-14 15:08:38 +01:00
|
|
|
|
2022-05-17 22:37:43 +02:00
|
|
|
public void HideMenu()
|
|
|
|
|
{
|
|
|
|
|
_startingOption = EventSystem.current.currentSelectedGameObject.GetComponent<Selectable>();
|
|
|
|
|
OpenMenuHideCurrent(_trainingPauseMenu);
|
|
|
|
|
}
|
2021-11-02 16:27:29 +01:00
|
|
|
}
|