From 503d59fcc25466dda26561ea6b365cfcaac16f3b Mon Sep 17 00:00:00 2001 From: _sega Date: Mon, 19 Jan 2026 11:11:19 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9E=D1=82=D0=B4=D0=B5=D0=BB=D1=8C=D0=BD?= =?UTF-8?q?=D1=8B=D0=B5=20=D1=81=D1=87=D0=B5=D1=82=D1=87=D0=B8=D0=BA=D0=B8?= =?UTF-8?q?=20=D0=B4=D0=BB=D1=8F=20=D0=BA=D0=B0=D0=B6=D0=B4=D0=BE=D0=B3?= =?UTF-8?q?=D0=BE=20=D1=82=D0=B8=D0=BF=D0=B0=20=D0=BF=D1=80=D0=B8=D0=B7?= =?UTF-8?q?=D0=B0.=20=D0=A1=D1=87=D0=B5=D1=82=D1=87=D0=B8=D0=BA=20=D0=BA?= =?UTF-8?q?=D0=B0=D1=81=D1=81=D1=8B=20=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=B0?= =?UTF-8?q?=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=BE=20?= =?UTF-8?q?=D0=BD=D0=B0=D0=B7=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20=D0=B2=D0=B0?= =?UTF-8?q?=D0=BB=D1=8E=D1=82=D1=8B.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Fonts/NEW/NexaRegular COOL.asset | 2 +- Assets/Scenes/GameScene3D.unity | 173 ++++++++++++++++++- Assets/Scripts/Combinator/SettingsActions.cs | 36 ++-- Assets/Scripts/PrizeSystem/PrizeSystem.cs | 106 ++++++++---- Assets/Scripts/Settings/DifficultyView.cs | 2 +- 5 files changed, 256 insertions(+), 63 deletions(-) diff --git a/Assets/Fonts/NEW/NexaRegular COOL.asset b/Assets/Fonts/NEW/NexaRegular COOL.asset index 7cf44fb..53445a5 100644 --- a/Assets/Fonts/NEW/NexaRegular COOL.asset +++ b/Assets/Fonts/NEW/NexaRegular COOL.asset @@ -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: 0.79440284, g: 1, b: 0, a: 1} + - _GlowColor: {r: 0.3309754, g: 1, 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} diff --git a/Assets/Scenes/GameScene3D.unity b/Assets/Scenes/GameScene3D.unity index de2cca4..9490d93 100644 --- a/Assets/Scenes/GameScene3D.unity +++ b/Assets/Scenes/GameScene3D.unity @@ -447,7 +447,7 @@ GameObject: - component: {fileID: 19565849} - component: {fileID: 19565851} m_Layer: 5 - m_Name: StartsNullable + m_Name: CashNullable m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -469,7 +469,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 20, y: -124} + m_AnchoredPosition: {x: 20, y: -148} m_SizeDelta: {x: 809.9999, y: 24} m_Pivot: {x: 0, y: 0.5} --- !u!114 &19565849 @@ -5637,7 +5637,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 0427b50b8b84b5641a0188046aaee227, type: 3} m_Name: m_EditorClassIdentifier: - dummyBots: 0 + dummyBots: 1 botsAmount: 5 dummyPreset: {fileID: 11400000, guid: 35ba7f84d7557e8479f7f086269256f6, type: 2} MistressPreset: {fileID: 11400000, guid: 9aec48759dff81140a8ede5cbefe07d5, type: 2} @@ -7964,6 +7964,162 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 422852723} m_CullTransparentMesh: 1 +--- !u!1 &423618865 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 423618866} + - component: {fileID: 423618869} + - component: {fileID: 423618868} + - component: {fileID: 423618867} + m_Layer: 5 + m_Name: Prizes.1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &423618866 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 423618865} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 626053254} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 20, y: -52} + m_SizeDelta: {x: 809.9999, y: 24} + m_Pivot: {x: 0, y: 0.5} +--- !u!114 &423618867 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 423618865} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 0 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!114 &423618868 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 423618865} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: "\u0425-\u0445\u043E\u043F\u043F\u0435\u0440; \u0422-\u0442\u0438\u043A\u0435\u0442\u043D\u0438\u043A; + \u041C-\u043C\u0430\u0440\u0431\u043B\u0441; \u0421-\u0441\u0443\u043F\u0435\u0440\u043F\u0440\u0438\u0437" + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 3f10bbcf486189d4f95b8de6dc2e2177, type: 2} + m_sharedMaterial: {fileID: 4262305343556741190, guid: 3f10bbcf486189d4f95b8de6dc2e2177, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967040 + m_fontColor: {r: 0, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 20 + m_fontSizeBase: 20 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &423618869 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 423618865} + m_CullTransparentMesh: 1 --- !u!1 &426391026 GameObject: m_ObjectHideFlags: 0 @@ -13432,6 +13588,7 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: - {fileID: 26183544} + - {fileID: 423618866} - {fileID: 1764998038} - {fileID: 1165451720} - {fileID: 1140329772} @@ -33162,7 +33319,7 @@ GameObject: - component: {fileID: 1140329773} - component: {fileID: 1140329775} m_Layer: 5 - m_Name: Starts + m_Name: Cash m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -33184,7 +33341,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 20, y: -100} + m_AnchoredPosition: {x: 20, y: -124} m_SizeDelta: {x: 809.9999, y: 24} m_Pivot: {x: 0, y: 0.5} --- !u!114 &1140329773 @@ -33415,7 +33572,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 20, y: -76} + m_AnchoredPosition: {x: 20, y: -100} m_SizeDelta: {x: 809.9999, y: 24} m_Pivot: {x: 0, y: 0.5} --- !u!114 &1165451721 @@ -46238,7 +46395,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 20, y: -148} + m_AnchoredPosition: {x: 20, y: -172} m_SizeDelta: {x: 809.9999, y: 24} m_Pivot: {x: 0, y: 0.5} --- !u!114 &1602294396 @@ -48745,7 +48902,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 20, y: -52} + m_AnchoredPosition: {x: 20, y: -76} m_SizeDelta: {x: 809.9999, y: 24} m_Pivot: {x: 0, y: 0.5} --- !u!114 &1764998039 diff --git a/Assets/Scripts/Combinator/SettingsActions.cs b/Assets/Scripts/Combinator/SettingsActions.cs index 6c9576d..a4c4f87 100644 --- a/Assets/Scripts/Combinator/SettingsActions.cs +++ b/Assets/Scripts/Combinator/SettingsActions.cs @@ -32,23 +32,23 @@ public class SettingsActions : MonoBehaviour } public void ResetPrizes() { - PlayerPrefs.SetInt(PrizeSystem.key_prizesgivenNul, 0); + PrizeSystem.ResetPrizeCounters(); RefreshUI(); } - + //Панель1 - public void EnterSpecialPrize() => gm.stateMachine.ChangeState(new EnterSpecialPrizeState()); - public void EnterPvePrice() => gm.stateMachine.ChangeState(new EnterPricePVEState()); - public void EnterPveRevengePrice() => gm.stateMachine.ChangeState(new EnterPricePVERevengeState()); - public void EnterPvpPrice() => gm.stateMachine.ChangeState(new EnterPricePVPState()); - public void EnterSupportNumber() => gm.stateMachine.ChangeState(new GetNumberState()); - public void EnterPrizesAvailable() => gm.stateMachine.ChangeState(new EnterPrizesAvailableState()); - public void ResetPrizeError() => PlayerPrefs.SetInt(KeyVault.PRIZING_ERROR_REGISTRED, 0); - public void EnterPrizesSettings() => gm.stateMachine.ChangeState(new EnterPrizesAvailableState()); - public void ConfigurePrizes() => gm.stateMachine.ChangeState(new EnterPrizesForCharactersState()); + public void EnterSpecialPrize() => gm.stateMachine.ChangeState(new EnterSpecialPrizeState()); + public void EnterPvePrice() => gm.stateMachine.ChangeState(new EnterPricePVEState()); + public void EnterPveRevengePrice() => gm.stateMachine.ChangeState(new EnterPricePVERevengeState()); + public void EnterPvpPrice() => gm.stateMachine.ChangeState(new EnterPricePVPState()); + public void EnterSupportNumber() => gm.stateMachine.ChangeState(new GetNumberState()); + public void EnterPrizesAvailable() => gm.stateMachine.ChangeState(new EnterPrizesAvailableState()); + public void ResetPrizeError() => PlayerPrefs.SetInt(KeyVault.PRIZING_ERROR_REGISTRED, 0); + public void EnterPrizesSettings() => gm.stateMachine.ChangeState(new EnterPrizesAvailableState()); + public void ConfigurePrizes() => gm.stateMachine.ChangeState(new EnterPrizesForCharactersState()); public void ConfigurePulsesToResetDifficulty() => gm.stateMachine.ChangeState(new EnterPulsesToResetDifficulty()); public void ConfigureValutaPerPulse() => gm.stateMachine.ChangeState(new EnterValutaPerImpulse()); - public void EnterValutaName() => gm.stateMachine.ChangeState(new EnterValutaNameState()); + public void EnterValutaName() => gm.stateMachine.ChangeState(new EnterValutaNameState()); //Панель2 public void EnterIO_test() => gm.stateMachine.ChangeState(new IoTestState(IO_test)); @@ -75,11 +75,15 @@ public class SettingsActions : MonoBehaviour public TextMeshProUGUI starts, startsNul, prize, prizeNul; void RefreshUI() { - starts.text = STARTS_BASE + UNNULLABLE + ": " + PlayerPrefs.GetInt(PrizeSystem.key_starts); - startsNul.text = STARTS_BASE + NULLABLE + ": " + PlayerPrefs.GetInt(PrizeSystem.key_startsNul); + string valutaName = PlayerPrefs.GetString("ValutaName", "руб."); - prize.text = PRIZE_BASE + UNNULLABLE + ": " + PlayerPrefs.GetInt(PrizeSystem.key_prizesgiven); - prizeNul.text = PRIZE_BASE + NULLABLE + ": " + PlayerPrefs.GetInt(PrizeSystem.key_prizesgivenNul); + starts.text = STARTS_BASE + UNNULLABLE + ": " + PlayerPrefs.GetInt(PrizeSystem.key_starts) + " " + valutaName; + startsNul.text = STARTS_BASE + NULLABLE + ": " + PlayerPrefs.GetInt(PrizeSystem.key_startsNul) + " " + valutaName; + + //prize.text = PRIZE_BASE + UNNULLABLE + ": " + PlayerPrefs.GetInt(PrizeSystem.key_prizesgiven); + //prizeNul.text = PRIZE_BASE + NULLABLE + ": " + PlayerPrefs.GetInt(PrizeSystem.key_prizesgivenNul); + prize.text = PRIZE_BASE + UNNULLABLE + ": " + PrizeSystem.GetPrizesCounterString(); + prizeNul.text = PRIZE_BASE + NULLABLE + ": " + PrizeSystem.GetPrizesCounterNullableString(); } void RefreshUI(int a) => RefreshUI(); diff --git a/Assets/Scripts/PrizeSystem/PrizeSystem.cs b/Assets/Scripts/PrizeSystem/PrizeSystem.cs index db0ef6a..15a6e8b 100644 --- a/Assets/Scripts/PrizeSystem/PrizeSystem.cs +++ b/Assets/Scripts/PrizeSystem/PrizeSystem.cs @@ -1,5 +1,6 @@ using System.Collections; using System.IO; +using System.Text; using UnityEngine; /// @@ -15,21 +16,16 @@ public class PrizeSystem : MonoBehaviour public static string key_prizesgiven = "PRIZESGIVEN"; public static string key_prizesgivenNul = "PRIZESGIVENNUL"; + public static string HopperPrizeCounter = "HopperCounter"; + public static string MarblesPrizeCounter = "MarblesCounter"; + public static string TicketPrizeCounter = "TicketCounter"; + public static string SpecialPrizeCounter = "SpecialCounter"; + + private static PrizeSystem instance; - private static Coroutine prizeCoroutine; private static bool prizing = false; //===========================start: PUBLIC API===========================// - /// - /// Инициализирует систему призов и счетчики статистики. - /// Должен быть вызван один раз при запуске приложения. - /// - /// - /// Выполняет: - /// - Установку статического экземпляра (singleton) - /// - Инициализацию счетчиков в PlayerPrefs если они отсутствуют - /// - Подготовку системы к работе - /// public void Initialize() { instance = this; @@ -53,36 +49,23 @@ public class PrizeSystem : MonoBehaviour Debug.Log("Пустой приз. Возврат."); return; } - if (prizeType == PrizeType.Hopper) + else if (prizeType == PrizeType.Special) { - Debug.Log($"Хоппер в количестве {prize.Amount}"); - instance.StartCoroutine(instance.HopperPrize(prize.Amount)); - } - if (prizeType == PrizeType.Hopper2) - { - Debug.Log($"Хоппер2 в количестве {prize.Amount}"); - instance.StartCoroutine(instance.HopperPrize(prize.Amount));//ТУТ БУДЕТ АЛГОРИТМ ДЛЯ 2 ХОППЕРА - } - if (prizeType == PrizeType.Special) - { - //GameManager.instance.stateMachine.ChangeState(new PrizeState()); PlayerPrefs.SetInt("NeedSpecialPrize", 1); } - if (prizeType == PrizeType.Ticket) + else { - instance.StartCoroutine(instance.HopperPrize(prize.Amount)); - } - if (prizeType == PrizeType.Marbles) - { - instance.StartCoroutine(instance.HopperPrize(prize.Amount)); + instance.StartCoroutine(instance.PrizingProcess(prize.Amount, prizeType)); } } //===========================end: PUBLIC API===========================// #region Приватные методы - private IEnumerator HopperPrize(int amount) + private IEnumerator PrizingProcess(int amount, PrizeType Type) { + Debug.Log($"Выдача приза {Type}. Количество: {amount}"); + prizing = true; for (int i = 0; i < amount; i++) { bool noPrizWhenError = SettingsManager.GetBool("PrizingWhenError", true); @@ -90,7 +73,6 @@ public class PrizeSystem : MonoBehaviour if (errorRegistred && noPrizWhenError) yield break; - prizing = true; float timeout = 10; //сек Debug.Log("Начинаю выдачу 303"); @@ -106,7 +88,7 @@ public class PrizeSystem : MonoBehaviour { Debug.Log("Считан приз"); success = true; - IncreasePrizeCounters(); + break; } yield return null; @@ -120,9 +102,14 @@ public class PrizeSystem : MonoBehaviour if (success) { + //контроль остатков int prizesCount = PlayerPrefs.GetInt(KeyVault.PRIZES_AVAILABLE); prizesCount = Mathf.Clamp(prizesCount - 1, 0, 9999); PlayerPrefs.SetInt(KeyVault.PRIZES_AVAILABLE, prizesCount); + + //Счетчики + IncreasePrizeCounters(Type); + } else { @@ -133,17 +120,62 @@ public class PrizeSystem : MonoBehaviour } - void IncreasePrizeCounters() + void IncreasePrizeCounters(PrizeType Type) { - PlayerPrefs.SetInt(key_prizesgiven, PlayerPrefs.GetInt(key_prizesgiven) + 1); - PlayerPrefs.SetInt(key_prizesgivenNul, PlayerPrefs.GetInt(key_prizesgivenNul) + 1); + string prizeCounterKey = Type switch + { + PrizeType.Special => SpecialPrizeCounter, + PrizeType.Marbles => MarblesPrizeCounter, + PrizeType.Hopper => HopperPrizeCounter, + PrizeType.Hopper2 => HopperPrizeCounter, + PrizeType.Ticket => TicketPrizeCounter, + _ => "none"}; + + string prizeCounterKeyNullable = prizeCounterKey + "Nullable"; + + + PlayerPrefs.SetInt(prizeCounterKey, PlayerPrefs.GetInt(prizeCounterKey, 0) + 1); + PlayerPrefs.SetInt(prizeCounterKeyNullable, PlayerPrefs.GetInt(prizeCounterKeyNullable, 0) + 1); } + + public static void ResetPrizeCounters() + { + PlayerPrefs.SetInt(HopperPrizeCounter + "Nullable", 0); + PlayerPrefs.SetInt(MarblesPrizeCounter + "Nullable", 0); + PlayerPrefs.SetInt(TicketPrizeCounter + "Nullable", 0); + PlayerPrefs.SetInt(SpecialPrizeCounter + "Nullable", 0); + } + + public static string GetPrizesCounterNullableString() + { + StringBuilder sb = new(); + + sb.Append($"Х: {PlayerPrefs.GetInt(HopperPrizeCounter + "Nullable", 0)}. "); + sb.Append($"Т: {PlayerPrefs.GetInt(TicketPrizeCounter + "Nullable", 0)}. "); + sb.Append($"М: {PlayerPrefs.GetInt(MarblesPrizeCounter + "Nullable", 0)}. "); + sb.Append($"С: {PlayerPrefs.GetInt(SpecialPrizeCounter + "Nullable", 0)}. "); + + return sb.ToString(); + } + + public static string GetPrizesCounterString() + { + StringBuilder sb = new(); + + sb.Append($"Х: {PlayerPrefs.GetInt(HopperPrizeCounter, 0)}. "); + sb.Append($"Т: {PlayerPrefs.GetInt(TicketPrizeCounter, 0)}. "); + sb.Append($"М: {PlayerPrefs.GetInt(MarblesPrizeCounter, 0)}. "); + sb.Append($"С: {PlayerPrefs.GetInt(SpecialPrizeCounter, 0)}. "); + + return sb.ToString(); + } + + + void InitCounters() { if (!PlayerPrefs.HasKey(key_starts)) PlayerPrefs.SetInt(key_starts, 0); if (!PlayerPrefs.HasKey(key_startsNul)) PlayerPrefs.SetInt(key_startsNul, 0); - if (!PlayerPrefs.HasKey(key_prizesgiven)) PlayerPrefs.SetInt(key_prizesgiven, 0); - if (!PlayerPrefs.HasKey(key_prizesgivenNul)) PlayerPrefs.SetInt(key_prizesgivenNul, 0); } #endregion } diff --git a/Assets/Scripts/Settings/DifficultyView.cs b/Assets/Scripts/Settings/DifficultyView.cs index 7907344..256ec48 100644 --- a/Assets/Scripts/Settings/DifficultyView.cs +++ b/Assets/Scripts/Settings/DifficultyView.cs @@ -69,7 +69,7 @@ public class DifficultyView : MonoBehaviour { sb.AppendLine("-Фиксированная. "); sb.AppendLine($"-Текущая сложность ботов: {SettingsManager.GetString("Difficulty", "?")}."); - sb.AppendLine("-Сложность берется из настроек и не меняется в зависимости от монет и счетчика импульсов."); + sb.AppendLine("-Сложность берется из настройки \"Сложность ботов\" и не меняется в зависимости от монет и счетчика импульсов."); sb.AppendLine("-Босс ходит первым."); label.text = sb.ToString();