Рефакторинг обработчика конца хода. Оптимизация сериализатора призов(добавлено кэширование)
This commit is contained in:
parent
042c82371b
commit
27204baca4
@ -11349,7 +11349,7 @@ Material:
|
||||
- _ClipRect: {r: -32767, g: -32767, b: 32767, a: 32767}
|
||||
- _EnvMatrixRotation: {r: 0, g: 0, b: 0, a: 0}
|
||||
- _FaceColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _GlowColor: {r: 1, g: 0.0031421185, b: 0, a: 1}
|
||||
- _GlowColor: {r: 1, g: 0.8115379, b: 0, a: 1}
|
||||
- _MaskCoord: {r: 0, g: 0, b: 32767, a: 32767}
|
||||
- _OutlineColor: {r: 0.554717, g: 0.554717, b: 0.554717, a: 1}
|
||||
- _ReflectFaceColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
|
||||
@ -3321,7 +3321,7 @@ GameObject:
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
m_IsActive: 0
|
||||
--- !u!224 &141381089
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
@ -6687,9 +6687,9 @@ RectTransform:
|
||||
m_Children: []
|
||||
m_Father: {fileID: 1065644474}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 0, y: 0}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_AnchorMin: {x: 0, y: 1}
|
||||
m_AnchorMax: {x: 0, y: 1}
|
||||
m_AnchoredPosition: {x: 170, y: -50.014133}
|
||||
m_SizeDelta: {x: 160, y: 50}
|
||||
m_Pivot: {x: 0, y: 0.5}
|
||||
--- !u!114 &325463673
|
||||
@ -11993,9 +11993,9 @@ RectTransform:
|
||||
- {fileID: 1706253902}
|
||||
m_Father: {fileID: 2024105139}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 0, y: 0}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_AnchorMin: {x: 0, y: 1}
|
||||
m_AnchorMax: {x: 0, y: 1}
|
||||
m_AnchoredPosition: {x: 955.625, y: -52.5}
|
||||
m_SizeDelta: {x: 260, y: 100}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &534572201
|
||||
@ -12668,9 +12668,9 @@ RectTransform:
|
||||
- {fileID: 693044069}
|
||||
m_Father: {fileID: 2024105139}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 0, y: 0}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_AnchorMin: {x: 0, y: 1}
|
||||
m_AnchorMax: {x: 0, y: 1}
|
||||
m_AnchoredPosition: {x: 639.375, y: -52.5}
|
||||
m_SizeDelta: {x: 260, y: 100.02827}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &558055375
|
||||
@ -14422,9 +14422,9 @@ RectTransform:
|
||||
m_Children: []
|
||||
m_Father: {fileID: 2009796845}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 0, y: 0}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_AnchorMin: {x: 0, y: 1}
|
||||
m_AnchorMax: {x: 0, y: 1}
|
||||
m_AnchoredPosition: {x: 188.15, y: -50}
|
||||
m_SizeDelta: {x: 228.7, y: 50}
|
||||
m_Pivot: {x: 0, y: 0.5}
|
||||
--- !u!114 &621955042
|
||||
@ -16570,9 +16570,9 @@ RectTransform:
|
||||
m_Children: []
|
||||
m_Father: {fileID: 558055374}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 0, y: 0}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_AnchorMin: {x: 0, y: 1}
|
||||
m_AnchorMax: {x: 0, y: 1}
|
||||
m_AnchoredPosition: {x: 100, y: -50.014133}
|
||||
m_SizeDelta: {x: 160.3, y: 50}
|
||||
m_Pivot: {x: 0, y: 0.5}
|
||||
--- !u!114 &693044070
|
||||
@ -26930,9 +26930,9 @@ RectTransform:
|
||||
- {fileID: 488531826}
|
||||
m_Father: {fileID: 1065644474}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 0, y: 0}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_AnchorMin: {x: 0, y: 1}
|
||||
m_AnchorMax: {x: 0, y: 1}
|
||||
m_AnchoredPosition: {x: 85, y: -50.014133}
|
||||
m_SizeDelta: {x: 170, y: 100.02827}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!1 &1027759316
|
||||
@ -32770,9 +32770,9 @@ RectTransform:
|
||||
- {fileID: 325463672}
|
||||
m_Father: {fileID: 2024105139}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 0, y: 0}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_AnchorMin: {x: 0, y: 1}
|
||||
m_AnchorMax: {x: 0, y: 1}
|
||||
m_AnchoredPosition: {x: 1306.875, y: -52.5}
|
||||
m_SizeDelta: {x: 330, y: 100.02827}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &1065644475
|
||||
@ -34793,9 +34793,9 @@ RectTransform:
|
||||
m_Children: []
|
||||
m_Father: {fileID: 558055374}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 0, y: 0}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_AnchorMin: {x: 0, y: 1}
|
||||
m_AnchorMax: {x: 0, y: 1}
|
||||
m_AnchoredPosition: {x: 50, y: -50.014133}
|
||||
m_SizeDelta: {x: 100, y: 100}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &1149227638
|
||||
@ -35443,9 +35443,9 @@ RectTransform:
|
||||
m_Children: []
|
||||
m_Father: {fileID: 534572200}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 0, y: 0}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_AnchorMin: {x: 0, y: 1}
|
||||
m_AnchorMax: {x: 0, y: 1}
|
||||
m_AnchoredPosition: {x: 50, y: -50}
|
||||
m_SizeDelta: {x: 100, y: 100}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &1191498012
|
||||
@ -51484,9 +51484,9 @@ RectTransform:
|
||||
m_Children: []
|
||||
m_Father: {fileID: 534572200}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 0, y: 0}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_AnchorMin: {x: 0, y: 1}
|
||||
m_AnchorMax: {x: 0, y: 1}
|
||||
m_AnchoredPosition: {x: 100, y: -50}
|
||||
m_SizeDelta: {x: 160, y: 50}
|
||||
m_Pivot: {x: 0, y: 0.5}
|
||||
--- !u!114 &1706253903
|
||||
@ -53558,9 +53558,9 @@ RectTransform:
|
||||
- {fileID: 1956066310}
|
||||
m_Father: {fileID: 2009796845}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 0, y: 0}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_AnchorMin: {x: 0, y: 1}
|
||||
m_AnchorMax: {x: 0, y: 1}
|
||||
m_AnchoredPosition: {x: 90, y: -50}
|
||||
m_SizeDelta: {x: 180, y: 100}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!4 &1811884474 stripped
|
||||
@ -57400,9 +57400,9 @@ RectTransform:
|
||||
- {fileID: 621955041}
|
||||
m_Father: {fileID: 2024105139}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 0, y: 0}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_AnchorMin: {x: 0, y: 1}
|
||||
m_AnchorMax: {x: 0, y: 1}
|
||||
m_AnchoredPosition: {x: 240.625, y: -52.5}
|
||||
m_SizeDelta: {x: 425, y: 100}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &2009796846
|
||||
@ -57900,7 +57900,6 @@ GameObject:
|
||||
- component: {fileID: 2024105141}
|
||||
- component: {fileID: 2024105140}
|
||||
- component: {fileID: 2024105142}
|
||||
- component: {fileID: 2024105143}
|
||||
m_Layer: 5
|
||||
m_Name: Instruction panel
|
||||
m_TagString: Untagged
|
||||
@ -57995,18 +57994,6 @@ MonoBehaviour:
|
||||
m_ChildScaleWidth: 0
|
||||
m_ChildScaleHeight: 0
|
||||
m_ReverseArrangement: 0
|
||||
--- !u!114 &2024105143
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2024105138}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: b627bd469bca718458ae17426c80d9af, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
--- !u!1 &2043408353
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
|
||||
public class PrizeState : IState
|
||||
public class VictoryState : IState
|
||||
{
|
||||
VictoryScale scale;
|
||||
GameManager gameManager;
|
||||
@ -50,12 +50,9 @@ public class PrizeState : IState
|
||||
else
|
||||
{
|
||||
//победили ботов
|
||||
|
||||
givePrize = true;
|
||||
scale = gameManager.botScale;
|
||||
gameManager.winPanel.ShowWin(CellState.Empty);
|
||||
|
||||
|
||||
|
||||
//это в меню переход. Надо в показ видео и лидерборд
|
||||
//nextState = new ClearFieldState(true, CellState.Player1);
|
||||
@ -66,7 +63,6 @@ public class PrizeState : IState
|
||||
//вкл анимацию приза
|
||||
scale.SetWinState();
|
||||
scale.winParticles.Play();
|
||||
|
||||
}
|
||||
|
||||
public void exit()
|
||||
@ -598,6 +598,20 @@ public class GameManager : MonoBehaviour
|
||||
}
|
||||
}
|
||||
|
||||
public void IncreaseScoreAndScaleOfPlayer(CellState player)
|
||||
{
|
||||
if (player == CellState.Player1)
|
||||
{
|
||||
player1score += 1;
|
||||
Player1Scale.SetMedalsCount(player1score);
|
||||
}
|
||||
else
|
||||
{
|
||||
player2score += 1;
|
||||
Player2Scale.SetMedalsCount(player2score);
|
||||
}
|
||||
}
|
||||
|
||||
public int GetMovesCount()
|
||||
{
|
||||
if (chipTransforms == null) return 0;
|
||||
|
||||
@ -1,10 +1,9 @@
|
||||
|
||||
using PrizeSystem;
|
||||
using Unity.VisualScripting;
|
||||
using UnityEngine;
|
||||
|
||||
public static class EndOfTurnHandler
|
||||
{
|
||||
|
||||
private static GameManager gm;
|
||||
private static CheckResult result;
|
||||
public static void NormalHandling()
|
||||
@ -15,81 +14,42 @@ public static class EndOfTurnHandler
|
||||
|
||||
|
||||
|
||||
bool swipeToNextRightNow = false;
|
||||
IState nextState;
|
||||
IState nextState = new ShowWinnerState(result);//âðåìåííî
|
||||
|
||||
//pvp ðåøåíèå ïîáåäà â ðàóíäå èëè â èãðå
|
||||
bool endround = result.End && !result.Draw;
|
||||
bool endgame = false;
|
||||
|
||||
// ïîäñ÷åò î÷êîâ
|
||||
if (result.End)//Ðàóíä îêîí÷åí. Ñ÷èòàåì î÷êè è ñòàâèì ñòåéò ïîêàç ïîáåäèòåëÿ
|
||||
if (result.End)
|
||||
{
|
||||
if (gm.gameMode == GameMode.pvp && !result.Draw)
|
||||
if (!result.Draw)
|
||||
{
|
||||
//ïîáåäèë p1
|
||||
if (gm.currentPlayer == CellState.Player1)
|
||||
if (gm.gameMode == GameMode.pvp)
|
||||
{
|
||||
gm.player1score += 1;
|
||||
gm.Player1Scale.SetMedalsCount(gm.player1score);
|
||||
PvpEndroundHandler();
|
||||
}
|
||||
else//ïîáåäèë p2
|
||||
else if (gm.gameMode == GameMode.pve) //êîíåö ðàóíäà ñ áîòîì
|
||||
{
|
||||
gm.player2score += 1;
|
||||
gm.Player2Scale.SetMedalsCount(gm.player2score);
|
||||
}
|
||||
PveEndroundHandler();
|
||||
if (gm.currentPlayer == CellState.Player1)
|
||||
{//àâòîïåðåõîä íà íåêñò áîòà.
|
||||
|
||||
if (gm.player1score == 5 || gm.player2score == 5)
|
||||
endgame = true;
|
||||
//Òóò íóæíî ïåðåéòè â ïðèçîâîå ñîñòîÿíèå
|
||||
//Ïîòîì èç íåãî èäòè äàëüøå.
|
||||
ShowWinnerState showWinner = CreateAutoTransitionState(result, 4);
|
||||
|
||||
|
||||
if (endgame)
|
||||
AvatarEventBus.Instance.OnEndGame?.Invoke(gm.currentPlayer);
|
||||
else if (endround)
|
||||
AvatarEventBus.Instance.OnEndRound?.Invoke(gm.currentPlayer);
|
||||
|
||||
}
|
||||
else if (gm.gameMode == GameMode.pve && !result.Draw) //êîíåö ðàóíäà ñ áîòîì
|
||||
{
|
||||
//ÍÅ ÍÈ×Üß
|
||||
VictoryScale botScale = gm.botScale;
|
||||
|
||||
if (gm.currentPlayer == CellState.Player1)//[ÏÎÁÅÄÀ ÈÃÐÎÊÀ]
|
||||
{
|
||||
if (CharacterController.CurrentCharacter.HasPrize)
|
||||
{
|
||||
PrizeSystemManager.GivePrize(CharacterController.CurrentCharacter.prize);
|
||||
CharacterController.CurrentCharacter.HasPrize = false;
|
||||
nextState = showWinner;
|
||||
}
|
||||
|
||||
DifficultyManager.instance.IncreaseDifficulty();
|
||||
gm.vsBotScore += 1;
|
||||
CharacterEventBus.Instance.OnPlayerWin?.Invoke();
|
||||
|
||||
LightUtility.Win();
|
||||
CharacterController.CurrentCharacter.Animator.SetTrigger("Lose");
|
||||
|
||||
|
||||
swipeToNextRightNow = true;
|
||||
}
|
||||
else//Áîò ïîáåäèë
|
||||
{
|
||||
LightUtility.Lose();
|
||||
CharacterController.CurrentCharacter.GetComponent<Animator>().SetTrigger("Win");
|
||||
DifficultyManager.instance.DecreaseDifficulty();
|
||||
if (gm.vsBotScore != 0)
|
||||
gm.vsBotScore -= 1;
|
||||
|
||||
CharacterEventBus.Instance.OnBotWin?.Invoke();
|
||||
if (TotalWin())
|
||||
{//êîíåö èãðû - ïðèçîâîå ñîñòîÿíèå
|
||||
nextState = new VictoryState();
|
||||
ClearAllScales();
|
||||
}
|
||||
botScale.SetMedalsCount(gm.vsBotScore);
|
||||
}
|
||||
else if (gm.gameMode == GameMode.pve && result.Draw)
|
||||
{
|
||||
CharacterEventBus.Instance.OnDraw?.Invoke();
|
||||
}
|
||||
|
||||
nextState = new ShowWinnerState(result);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -97,27 +57,78 @@ public static class EndOfTurnHandler
|
||||
nextState = new StartTurnState();
|
||||
}
|
||||
|
||||
if (gm.gameMode == GameMode.pve && gm.vsBotScore == gm.botsAmount) gm.upgradeFeeshkaDifficulty();
|
||||
|
||||
//êîíåö èãðû - ïðèçîâîå ñîñòîÿíèå
|
||||
if (TotalWin())
|
||||
{
|
||||
nextState = new PrizeState();
|
||||
ClearAllScales();
|
||||
}
|
||||
else if (swipeToNextRightNow)
|
||||
{
|
||||
ShowWinnerState showWinner = new ShowWinnerState(result);
|
||||
showWinner.subState = ShowWinnerState.ShowWinnerSubstates.ExitByTime;
|
||||
showWinner.timeRest = 4;
|
||||
nextState = showWinner;
|
||||
}
|
||||
|
||||
gm.stateMachine.ChangeState(nextState);
|
||||
}
|
||||
|
||||
|
||||
private static void PveEndroundHandler()
|
||||
{
|
||||
if (gm.currentPlayer == CellState.Player1)
|
||||
{
|
||||
PlayerWinHandler();
|
||||
}
|
||||
else//Áîò ïîáåäèë
|
||||
{
|
||||
BotWinHandler();
|
||||
}
|
||||
gm.botScale.SetMedalsCount(gm.vsBotScore);
|
||||
|
||||
//åñëè ôèøêó ïîáåäèëè, òî ïîâûøàåì.
|
||||
if (gm.vsBotScore == gm.botsAmount) gm.upgradeFeeshkaDifficulty();
|
||||
}
|
||||
|
||||
private static void PvpEndroundHandler()
|
||||
{
|
||||
CellState winner = gm.currentPlayer;
|
||||
gm.IncreaseScoreAndScaleOfPlayer(winner);
|
||||
|
||||
if (TotalWin())
|
||||
AvatarEventBus.Instance.OnEndGame?.Invoke(gm.currentPlayer);
|
||||
else
|
||||
AvatarEventBus.Instance.OnEndRound?.Invoke(gm.currentPlayer);
|
||||
}
|
||||
private static void BotWinHandler()
|
||||
{
|
||||
LightUtility.Lose();
|
||||
CharacterController.CurrentCharacter.GetComponent<Animator>().SetTrigger("Win");
|
||||
DifficultyManager.instance.DecreaseDifficulty();
|
||||
if (gm.vsBotScore != 0)
|
||||
gm.vsBotScore -= 1;
|
||||
|
||||
CharacterEventBus.Instance.OnBotWin?.Invoke();
|
||||
}
|
||||
private static void PlayerWinHandler()
|
||||
{
|
||||
if (CharacterController.CurrentCharacter.HasPrize)
|
||||
{
|
||||
PrizeSystemManager.GivePrize(CharacterController.CurrentCharacter.prize);
|
||||
CharacterController.CurrentCharacter.HasPrize = false;
|
||||
}
|
||||
|
||||
DifficultyManager.instance.IncreaseDifficulty();
|
||||
gm.vsBotScore += 1;
|
||||
CharacterEventBus.Instance.OnPlayerWin?.Invoke();
|
||||
|
||||
LightUtility.Win();
|
||||
CharacterController.CurrentCharacter.Animator.SetTrigger("Lose");
|
||||
}
|
||||
|
||||
private static bool TotalWin() =>
|
||||
gm.player1score == 5 || gm.player2score == 5 || gm.vsBotScore == gm.botsAmount;
|
||||
private static void ClearAllScales()
|
||||
{
|
||||
if (gm.botScale.isActiveAndEnabled) gm.botScale.ClearScale();
|
||||
if (gm.Player1Scale.isActiveAndEnabled) gm.Player1Scale.ClearScale();
|
||||
if (gm.Player2Scale.isActiveAndEnabled) gm.Player2Scale.ClearScale();
|
||||
}
|
||||
|
||||
private static ShowWinnerState CreateAutoTransitionState(CheckResult result, float time)
|
||||
{
|
||||
var state = new ShowWinnerState(result);
|
||||
state.subState = ShowWinnerState.ShowWinnerSubstates.ExitByTime;
|
||||
state.timeRest = time;
|
||||
return state;
|
||||
}
|
||||
|
||||
public static void WinByTimerHandling()
|
||||
{
|
||||
@ -162,17 +173,13 @@ public static class EndOfTurnHandler
|
||||
//êîíåö èãðû - ïðèçîâîå ñîñòîÿíèå
|
||||
if (TotalWin())
|
||||
{
|
||||
nextState = new PrizeState();
|
||||
nextState = new VictoryState();
|
||||
ClearAllScales();
|
||||
}
|
||||
|
||||
gm.stateMachine.ChangeState(nextState);
|
||||
}
|
||||
|
||||
private static void ClearAllScales()
|
||||
{
|
||||
if (gm.botScale.isActiveAndEnabled) gm.botScale.ClearScale();
|
||||
if (gm.Player1Scale.isActiveAndEnabled) gm.Player1Scale.ClearScale();
|
||||
if (gm.Player2Scale.isActiveAndEnabled) gm.Player2Scale.ClearScale();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -14,16 +14,34 @@ namespace PrizeSystem
|
||||
static string FILE_PATH => Path.Combine(Application.persistentDataPath, CHARACTERS_PRIZES);
|
||||
static int CharactersAmount => GameManager.instance.botsAmount;
|
||||
|
||||
private static List<Prize> cachedPrizes;
|
||||
|
||||
public static List<Prize> LoadPrizes()
|
||||
{
|
||||
if (!File.Exists(FILE_PATH))
|
||||
if (cachedPrizes != null)
|
||||
return cachedPrizes;
|
||||
|
||||
try
|
||||
{
|
||||
Debug.Log("Не записаны призы беру дефолт");
|
||||
return GetDefaultPrizes();
|
||||
if (File.Exists(FILE_PATH))
|
||||
{
|
||||
string fileString = File.ReadAllText(FILE_PATH);
|
||||
cachedPrizes = DeserializePrizes(fileString);
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.Log($"Файл {FILE_PATH} не найден, создаю с призами по умолчанию");
|
||||
cachedPrizes = GetDefaultPrizes();
|
||||
SavePrizes(cachedPrizes);
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Debug.LogError($"Ошибка загрузки призов: {e.Message}");
|
||||
cachedPrizes = GetDefaultPrizes();
|
||||
}
|
||||
|
||||
string fileString = File.ReadAllText(FILE_PATH);
|
||||
return DeserializePrizes(fileString);
|
||||
return cachedPrizes;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user