├── .gitignore ├── README.md └── Scripts ├── Editor.meta ├── Editor ├── AssetPostprocessor.meta ├── AssetPostprocessor │ ├── TexturePostProcessor.cs │ └── TexturePostProcessor.cs.meta ├── Managers.meta └── Managers │ ├── ManagerLevel.meta │ └── ManagerLevel │ ├── ManagerLevelEditor.cs │ └── ManagerLevelEditor.cs.meta ├── Runtime.meta ├── Runtime ├── Core.meta ├── Core │ ├── Actors.meta │ ├── Actors │ │ ├── Actor.meta │ │ ├── Actor │ │ │ ├── Actor.cs │ │ │ ├── Actor.cs.meta │ │ │ ├── ActorAi.cs │ │ │ ├── ActorAi.cs.meta │ │ │ ├── ActorPlayer.cs │ │ │ ├── ActorPlayer.cs.meta │ │ │ ├── Controllers.meta │ │ │ └── Controllers │ │ │ │ ├── ControllerActorAnimator.meta │ │ │ │ ├── ControllerActorAnimator │ │ │ │ ├── ControllerActorAnimator.cs │ │ │ │ └── ControllerActorAnimator.cs.meta │ │ │ │ ├── ControllerActorController.meta │ │ │ │ ├── ControllerActorController │ │ │ │ ├── ControllerBaseControllerControllerBasePlayerJoystick.cs │ │ │ │ ├── ControllerBaseControllerControllerBasePlayerJoystick.cs.meta │ │ │ │ ├── ControllerControllerBase.cs │ │ │ │ ├── ControllerControllerBase.cs.meta │ │ │ │ ├── ControllerControllerBaseAi.cs │ │ │ │ ├── ControllerControllerBaseAi.cs.meta │ │ │ │ ├── ControllerControllerBasePlayer.cs │ │ │ │ └── ControllerControllerBasePlayer.cs.meta │ │ │ │ ├── ControllerActorHealth.meta │ │ │ │ ├── ControllerActorHealth │ │ │ │ ├── ControllerActorHealth.cs │ │ │ │ └── ControllerActorHealth.cs.meta │ │ │ │ ├── ControllerActorStack.meta │ │ │ │ ├── ControllerActorStack │ │ │ │ ├── ControllerStack.cs │ │ │ │ ├── ControllerStack.cs.meta │ │ │ │ ├── StackSlot.cs │ │ │ │ └── StackSlot.cs.meta │ │ │ │ ├── ControllerActorWorldCanvas.meta │ │ │ │ └── ControllerActorWorldCanvas │ │ │ │ ├── ControllerActorWorldCanvas.cs │ │ │ │ └── ControllerActorWorldCanvas.cs.meta │ │ ├── Character.meta │ │ └── Character │ │ │ ├── Character.cs │ │ │ ├── Character.cs.meta │ │ │ ├── CharacterAi.cs │ │ │ ├── CharacterAi.cs.meta │ │ │ ├── CharacterPlayer.cs │ │ │ ├── CharacterPlayer.cs.meta │ │ │ ├── Controllers.meta │ │ │ └── Controllers │ │ │ ├── ControllerCharacterRagdoll.cs │ │ │ └── ControllerCharacterRagdoll.cs.meta │ ├── Enums.meta │ ├── Enums │ │ ├── LevelStarterType.cs │ │ └── LevelStarterType.cs.meta │ ├── Extentions.meta │ ├── Extentions │ │ ├── ScrollViewFocusFunctions.cs │ │ └── ScrollViewFocusFunctions.cs.meta │ ├── FactorySystem.meta │ ├── FactorySystem │ │ ├── Factory.cs │ │ └── Factory.cs.meta │ ├── Helpers.meta │ ├── Helpers │ │ ├── Gizmos.meta │ │ ├── Gizmos │ │ │ ├── VisualGizmoAdder.cs │ │ │ └── VisualGizmoAdder.cs.meta │ │ ├── RotationAngleClamper.cs │ │ ├── RotationAngleClamper.cs.meta │ │ ├── Starters.meta │ │ ├── Starters │ │ │ ├── GameStarter.cs │ │ │ ├── GameStarter.cs.meta │ │ │ ├── LevelStarter.cs │ │ │ └── LevelStarter.cs.meta │ │ ├── Undestroyable.cs │ │ ├── Undestroyable.cs.meta │ │ ├── UpdateFrameFrequencyController.cs │ │ └── UpdateFrameFrequencyController.cs.meta │ ├── Interfaces.meta │ ├── Interfaces │ │ ├── IProvideObject.cs │ │ ├── IProvideObject.cs.meta │ │ ├── ISetUpdateFunction.cs │ │ └── ISetUpdateFunction.cs.meta │ ├── Managers.meta │ ├── Managers │ │ ├── ManagerAddressable.meta │ │ ├── ManagerAddressable │ │ │ ├── ManagerAddressable.cs │ │ │ └── ManagerAddressable.cs.meta │ │ ├── ManagerCinemachine.meta │ │ ├── ManagerCinemachine │ │ │ ├── ManagerCinemachine.cs │ │ │ └── ManagerCinemachine.cs.meta │ │ ├── ManagerEvent.meta │ │ ├── ManagerEvent │ │ │ ├── ManagerEvent.cs │ │ │ └── ManagerEvent.cs.meta │ │ ├── ManagerGame.meta │ │ ├── ManagerGame │ │ │ ├── GameStateType.cs │ │ │ ├── GameStateType.cs.meta │ │ │ ├── ManagerGame.cs │ │ │ └── ManagerGame.cs.meta │ │ ├── ManagerInput.meta │ │ ├── ManagerInput │ │ │ ├── ManagerInput.cs │ │ │ └── ManagerInput.cs.meta │ │ ├── ManagerLevel.meta │ │ ├── ManagerLevel │ │ │ ├── Level.cs │ │ │ ├── Level.cs.meta │ │ │ ├── ManagerLevel.cs │ │ │ └── ManagerLevel.cs.meta │ │ ├── ManagerSave.meta │ │ ├── ManagerSave │ │ │ ├── ManagerSave.cs │ │ │ └── ManagerSave.cs.meta │ │ ├── ManagerServiceLocator.meta │ │ ├── ManagerServiceLocator │ │ │ ├── ManagerServiceLocator.cs │ │ │ └── ManagerServiceLocator.cs.meta │ │ ├── ManagerSound.meta │ │ ├── ManagerSound │ │ │ ├── ManagerSound.cs │ │ │ └── ManagerSound.cs.meta │ │ ├── ManagerUi.meta │ │ ├── ManagerUi │ │ │ ├── ControllerUiCanvases.cs │ │ │ ├── ControllerUiCanvases.cs.meta │ │ │ ├── ControllerUiJoystickCanvas.cs │ │ │ ├── ControllerUiJoystickCanvas.cs.meta │ │ │ ├── ControllerUiLevelCanvas.cs │ │ │ ├── ControllerUiLevelCanvas.cs.meta │ │ │ ├── ControllerUiLoadingCanvas.cs │ │ │ ├── ControllerUiLoadingCanvas.cs.meta │ │ │ ├── ControllerUiMoneyCanvas.cs │ │ │ ├── ControllerUiMoneyCanvas.cs.meta │ │ │ ├── ControllerUiPointerCanvas.cs │ │ │ ├── ControllerUiPointerCanvas.cs.meta │ │ │ ├── ControllerUiRank.cs │ │ │ ├── ControllerUiRank.cs.meta │ │ │ ├── ControllerUiTutorialCanvas.cs │ │ │ ├── ControllerUiTutorialCanvas.cs.meta │ │ │ ├── ManagerUi.cs │ │ │ └── ManagerUi.cs.meta │ │ ├── ManagerVibrate.meta │ │ ├── ManagerVibrate │ │ │ ├── ManagerVibration.cs │ │ │ └── ManagerVibration.cs.meta │ │ ├── ManagerWisdomSDK.meta │ │ └── ManagerWisdomSDK │ │ │ ├── ManagerWisdomSDK.cs │ │ │ └── ManagerWisdomSDK.cs.meta │ ├── ScriptableObjects.meta │ ├── ScriptableObjects │ │ ├── Data.meta │ │ ├── Data │ │ │ ├── Character.meta │ │ │ ├── Character │ │ │ │ ├── PlayerDataSO.cs │ │ │ │ └── PlayerDataSO.cs.meta │ │ │ ├── CharacterData.cs │ │ │ ├── CharacterData.cs.meta │ │ │ ├── Sounds.meta │ │ │ ├── Sounds │ │ │ │ ├── SoundsGameplayDataSO.cs │ │ │ │ ├── SoundsGameplayDataSO.cs.meta │ │ │ │ ├── SoundsUiDataSO.cs │ │ │ │ └── SoundsUiDataSO.cs.meta │ │ │ ├── Ui.meta │ │ │ └── Ui │ │ │ │ ├── CharacterIconsSO.cs │ │ │ │ └── CharacterIconsSO.cs.meta │ │ ├── Events.meta │ │ ├── Events │ │ │ ├── Base.meta │ │ │ ├── Base │ │ │ │ ├── EventChannel.cs │ │ │ │ ├── EventChannel.cs.meta │ │ │ │ ├── EventListener.cs │ │ │ │ └── EventListener.cs.meta │ │ │ ├── EventChannels.meta │ │ │ ├── EventChannels │ │ │ │ ├── EventChannelFloat.cs │ │ │ │ ├── EventChannelFloat.cs.meta │ │ │ │ ├── EventChannelGameObject.cs │ │ │ │ ├── EventChannelGameObject.cs.meta │ │ │ │ ├── EventChannelGameState.cs │ │ │ │ ├── EventChannelGameState.cs.meta │ │ │ │ ├── EventChannelInt.cs │ │ │ │ ├── EventChannelInt.cs.meta │ │ │ │ ├── EventChannelVector3.cs │ │ │ │ ├── EventChannelVector3.cs.meta │ │ │ │ ├── EventChannelVoid.cs │ │ │ │ └── EventChannelVoid.cs.meta │ │ │ ├── EventListeners.meta │ │ │ └── EventListeners │ │ │ │ ├── EventListenerFloat.cs │ │ │ │ ├── EventListenerFloat.cs.meta │ │ │ │ ├── EventListenerGameObject.cs │ │ │ │ ├── EventListenerGameObject.cs.meta │ │ │ │ ├── EventListenerGameState.cs │ │ │ │ ├── EventListenerGameState.cs.meta │ │ │ │ ├── EventListenerInt.cs │ │ │ │ ├── EventListenerInt.cs.meta │ │ │ │ ├── EventListenerVector3.cs │ │ │ │ ├── EventListenerVector3.cs.meta │ │ │ │ ├── EventListenerVoid.cs │ │ │ │ └── EventListenerVoid.cs.meta │ │ ├── Structs.meta │ │ └── Structs │ │ │ ├── Void.cs │ │ │ └── Void.cs.meta │ ├── Ui.meta │ └── Ui │ │ ├── ControllerCanvasButton.meta │ │ ├── ControllerCanvasButton │ │ ├── Base.meta │ │ ├── Base │ │ │ ├── ControllerCanvasButtons.cs │ │ │ └── ControllerCanvasButtons.cs.meta │ │ ├── ControllerUiButtonFail.cs │ │ ├── ControllerUiButtonFail.cs.meta │ │ ├── ControllerUiButtonInGameButtons.cs │ │ ├── ControllerUiButtonInGameButtons.cs.meta │ │ ├── ControllerUiButtonSettings.cs │ │ ├── ControllerUiButtonSettings.cs.meta │ │ ├── ControllerUiButtonShop.cs │ │ ├── ControllerUiButtonShop.cs.meta │ │ ├── ControllerUiButtonSuccess.cs │ │ └── ControllerUiButtonSuccess.cs.meta │ │ ├── ControllerCanvasOpenClose.meta │ │ ├── ControllerCanvasOpenClose │ │ ├── Base.meta │ │ ├── Base │ │ │ ├── ControllerCanvasOpenCloseBase.cs │ │ │ └── ControllerCanvasOpenCloseBase.cs.meta │ │ ├── ControllerOpenCloseBaseDamageCanvas.cs │ │ ├── ControllerOpenCloseBaseDamageCanvas.cs.meta │ │ ├── ControllerOpenCloseBaseSuccessCanvas.cs │ │ ├── ControllerOpenCloseBaseSuccessCanvas.cs.meta │ │ ├── ControllerOpenCloseBaseUiPointerCanvas.cs │ │ ├── ControllerOpenCloseBaseUiPointerCanvas.cs.meta │ │ ├── ControllerOpenCloseFailCanvas.cs │ │ ├── ControllerOpenCloseFailCanvas.cs.meta │ │ ├── ControllerOpenCloseInGameButtonsCanvas.cs │ │ ├── ControllerOpenCloseInGameButtonsCanvas.cs.meta │ │ ├── ControllerOpenCloseJoystickCanvas.cs │ │ ├── ControllerOpenCloseJoystickCanvas.cs.meta │ │ ├── ControllerOpenCloseLevelCanvas.cs │ │ ├── ControllerOpenCloseLevelCanvas.cs.meta │ │ ├── ControllerOpenCloseLoadingCanvas.cs │ │ ├── ControllerOpenCloseLoadingCanvas.cs.meta │ │ ├── ControllerOpenCloseMoneyCanvas.cs │ │ ├── ControllerOpenCloseMoneyCanvas.cs.meta │ │ ├── ControllerOpenCloseRankCanvas.cs │ │ ├── ControllerOpenCloseRankCanvas.cs.meta │ │ ├── ControllerOpenCloseSettingCanvas.cs │ │ ├── ControllerOpenCloseSettingCanvas.cs.meta │ │ ├── ControllerOpenCloseShopCanvas.cs │ │ ├── ControllerOpenCloseShopCanvas.cs.meta │ │ ├── ControllerOpenCloseTutorialCanvas.cs │ │ └── ControllerOpenCloseTutorialCanvas.cs.meta │ │ ├── UIParticleSystem.cs │ │ ├── UIParticleSystem.cs.meta │ │ ├── UiCoin.cs │ │ ├── UiCoin.cs.meta │ │ ├── UiPointer.cs │ │ ├── UiPointer.cs.meta │ │ ├── UiRank.cs │ │ ├── UiRank.cs.meta │ │ ├── UiStar.cs │ │ ├── UiStar.cs.meta │ │ ├── UiToggle.cs │ │ ├── UiToggle.cs.meta │ │ ├── UiTutorial.cs │ │ └── UiTutorial.cs.meta ├── Systems.meta └── Systems │ ├── AddressablesSystem.meta │ ├── AddressablesSystem │ ├── AddressablesSystem.cs │ └── AddressablesSystem.cs.meta │ ├── CinemachineSystem.meta │ ├── CinemachineSystem │ ├── CinemachineSystem.cs │ ├── CinemachineSystem.cs.meta │ ├── ControllerCinemachineCameraShake.cs │ ├── ControllerCinemachineCameraShake.cs.meta │ ├── GhostObjectForCinemachineTarget.cs │ └── GhostObjectForCinemachineTarget.cs.meta │ ├── EventSystem.meta │ ├── EventSystem │ ├── EventSystem.cs │ ├── EventSystem.cs.meta │ ├── Interfaces.meta │ ├── Interfaces │ │ ├── IEvent.cs │ │ └── IEvent.cs.meta │ ├── TolianEvents.meta │ └── TolianEvents │ │ ├── TolianEvents.cs │ │ └── TolianEvents.cs.meta │ ├── InputSystem.meta │ ├── InputSystem │ ├── Enums.meta │ ├── Enums │ │ ├── InputType.cs │ │ ├── InputType.cs.meta │ │ ├── JoystickType.cs │ │ └── JoystickType.cs.meta │ ├── InputSystem.cs │ └── InputSystem.cs.meta │ ├── LevelSystem.meta │ ├── LevelSystem │ ├── ControllerLevel.cs │ └── ControllerLevel.cs.meta │ ├── ObjectPoolSystem.meta │ ├── ObjectPoolSystem │ ├── Enum.meta │ ├── Enum │ │ ├── ObjectPoolType.cs │ │ └── ObjectPoolType.cs.meta │ ├── Interfaces.meta │ ├── Interfaces │ │ ├── BaseObjectForObjectPoolSystem.cs │ │ └── BaseObjectForObjectPoolSystem.cs.meta │ ├── ManagerObjectPool.meta │ ├── ManagerObjectPool │ │ ├── ManagerObjectPool.cs │ │ └── ManagerObjectPool.cs.meta │ ├── ObjectPoolSystem.cs │ └── ObjectPoolSystem.cs.meta │ ├── OnBoardingSystem.meta │ ├── OnBoardingSystem │ ├── ControllerOnBoarding.cs │ ├── ControllerOnBoarding.cs.meta │ ├── OnBoardingTask.cs │ ├── OnBoardingTask.cs.meta │ ├── OnBoardingTasks.meta │ ├── OnBoardingTasks │ │ ├── OnBoardingTaskMoveToPosition.cs │ │ └── OnBoardingTaskMoveToPosition.cs.meta │ ├── OnboardingStep.cs │ └── OnboardingStep.cs.meta │ ├── SaveSystem.meta │ ├── SaveSystem │ ├── SaveClasses.meta │ ├── SaveClasses │ │ ├── OnboardingStepsCompletionSitutation.cs │ │ └── OnboardingStepsCompletionSitutation.cs.meta │ ├── SaveState.cs │ ├── SaveState.cs.meta │ ├── SaveSystem.cs │ └── SaveSystem.cs.meta │ ├── ServiceLocatorSystem.meta │ ├── ServiceLocatorSystem │ ├── Interfaces.meta │ ├── Interfaces │ │ ├── IService.cs │ │ └── IService.cs.meta │ ├── MonoBehaviourService.cs │ ├── MonoBehaviourService.cs.meta │ ├── ServiceLocatorSystem.cs │ └── ServiceLocatorSystem.cs.meta │ ├── SingletonSystem.meta │ ├── SingletonSystem │ ├── Singleton.cs │ └── Singleton.cs.meta │ ├── SoundSystem.meta │ ├── SoundSystem │ ├── SoundSystem.cs │ └── SoundSystem.cs.meta │ ├── TolianDebuggerSystem.meta │ ├── TolianDebuggerSystem │ ├── ManagerTolianDebugger.meta │ └── ManagerTolianDebugger │ │ ├── ManagerDebugger.cs │ │ └── ManagerDebugger.cs.meta │ ├── UiSystem.meta │ ├── UiSystem │ ├── CanvasUi.cs │ ├── CanvasUi.cs.meta │ ├── CanvasUiPart.cs │ ├── CanvasUiPart.cs.meta │ ├── Enum.meta │ ├── Enum │ │ ├── CanvasOpeningType.cs │ │ ├── CanvasOpeningType.cs.meta │ │ ├── CanvasType.cs │ │ ├── CanvasType.cs.meta │ │ ├── UiTutorialType.cs │ │ └── UiTutorialType.cs.meta │ ├── Interface.meta │ ├── Interface │ │ ├── IOpenCloseUiCanvas.cs │ │ └── IOpenCloseUiCanvas.cs.meta │ ├── Systems.meta │ └── Systems │ │ ├── UiCanvasSystem.cs │ │ ├── UiCanvasSystem.cs.meta │ │ ├── UiJoystickSystem.cs │ │ └── UiJoystickSystem.cs.meta │ ├── VibrateSystem.meta │ └── VibrateSystem │ ├── VibrateSystem.cs │ └── VibrateSystem.cs.meta ├── Test.meta ├── Test ├── EditModeTests.meta ├── EditModeTests │ ├── Test1.cs │ └── Test1.cs.meta ├── PlayModeTests.meta └── PlayModeTests │ ├── Test2.cs │ └── Test2.cs.meta ├── __Doxygen.meta └── __Doxygen ├── README.md └── README.md.meta /.gitignore: -------------------------------------------------------------------------------- 1 | # This .gitignore file should be placed at the root of your Unity project directory 2 | # 3 | # Get latest from https://github.com/github/gitignore/blob/main/Unity.gitignore 4 | # 5 | /[Ll]ibrary/ 6 | /[Tt]emp/ 7 | /[Oo]bj/ 8 | /[Bb]uild/ 9 | /[Bb]uilds/ 10 | /[Ll]ogs/ 11 | /[Uu]ser[Ss]ettings/ 12 | 13 | # MemoryCaptures can get excessive in size. 14 | # They also could contain extremely sensitive data 15 | /[Mm]emoryCaptures/ 16 | 17 | # Recordings can get excessive in size 18 | /[Rr]ecordings/ 19 | 20 | # Uncomment this line if you wish to ignore the asset store tools plugin 21 | # /[Aa]ssets/AssetStoreTools* 22 | 23 | # Autogenerated Jetbrains Rider plugin 24 | /[Aa]ssets/Plugins/Editor/JetBrains* 25 | 26 | # Visual Studio cache directory 27 | .vs/ 28 | 29 | # Gradle cache directory 30 | .gradle/ 31 | 32 | # Autogenerated VS/MD/Consulo solution and project files 33 | ExportedObj/ 34 | .consulo/ 35 | *.csproj 36 | *.unityproj 37 | *.sln 38 | *.suo 39 | *.tmp 40 | *.user 41 | *.userprefs 42 | *.pidb 43 | *.booproj 44 | *.svd 45 | *.pdb 46 | *.mdb 47 | *.opendb 48 | *.VC.db 49 | 50 | # Unity3D generated meta files 51 | *.pidb.meta 52 | *.pdb.meta 53 | *.mdb.meta 54 | 55 | # Unity3D generated file on crash reports 56 | sysinfo.txt 57 | 58 | # Builds 59 | *.apk 60 | *.aab 61 | *.unitypackage 62 | *.app 63 | 64 | # Crashlytics generated file 65 | crashlytics-build.properties 66 | 67 | # Packed Addressables 68 | /[Aa]ssets/[Aa]ddressable[Aa]ssets[Dd]ata/*/*.bin* 69 | 70 | # Temporary auto-generated Android Assets 71 | /[Aa]ssets/[Ss]treamingAssets/aa.meta 72 | /[Aa]ssets/[Ss]treamingAssets/aa/* 73 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Project: Unity Framework For Mobile Games 2 | ## Project Description 3 | This repository contains SCRIPT folders of my Unity framework.
4 | Please refer to my medium articles which explain about this framework. 5 | [Medium Link](https://medium.com/@canernurdag/unity-how-to-create-a-base-framework-for-mobile-games-b2d936660df0)
6 | The followings are implemented:
7 | - Addressables
8 | - Assembly Definitions 9 | - Scriptable Objects
10 | - Observer Pattern
11 | - Singleton Pattern
12 | - Service-Locator Pattern
13 | - Factory Pattern
14 | - Object Pool Pattern
15 | - Editor Codes
16 | - Gameplay Framework 17 | - Ui System
18 | - Save System
19 | - Event System
20 | - Input system
21 | - Cinemachine system
22 | - ... 23 | -------------------------------------------------------------------------------- /Scripts/Editor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ad4c95590d971ac48bef86e6e5688fe7 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Editor/AssetPostprocessor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b3b4d95523f250f4d9c51f11f17f2800 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Editor/AssetPostprocessor/TexturePostProcessor.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using System.Collections.Generic; 4 | using UnityEditor; 5 | using UnityEngine; 6 | 7 | namespace Tolian.Editor.AssetPostProcessSystem 8 | { 9 | /// 10 | /// Handles importing textures as Sprite. 11 | /// 12 | public class TexturePostProcessor : AssetPostprocessor 13 | { 14 | private void OnPreprocessTexture() 15 | { 16 | var textureImporter = assetImporter as TextureImporter; 17 | textureImporter.textureType = TextureImporterType.Sprite; 18 | textureImporter.spriteImportMode = SpriteImportMode.Single; 19 | textureImporter.maxTextureSize = 512; 20 | } 21 | 22 | } 23 | } 24 | 25 | -------------------------------------------------------------------------------- /Scripts/Editor/AssetPostprocessor/TexturePostProcessor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 47e6926db0c625b4dbc7360ed93cc63b 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Editor/Managers.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1f687c3a71471ee47b296a206d2f7b52 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Editor/Managers/ManagerLevel.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2c53b010356c612419e53b6dc11bca90 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Editor/Managers/ManagerLevel/ManagerLevelEditor.cs: -------------------------------------------------------------------------------- 1 | using Tolian.Runtime.Core.Managers; 2 | using Tolian.Runtime.Core.Managers.LevelSystem; 3 | using UnityEditor; 4 | using UnityEngine; 5 | 6 | namespace Tolian.Editor.ManagerLevelSystem 7 | { 8 | /// 9 | /// Gives more functionality to ManagerLevel class 10 | /// 11 | [CustomEditor(typeof(ManagerLevel))] 12 | public class ManagerLevelEditor : UnityEditor.Editor 13 | { 14 | /// 15 | /// This override lets users to refresh "build scenes" automatically according to ManagerLevel 16 | /// 17 | public override void OnInspectorGUI() 18 | { 19 | base.OnInspectorGUI(); 20 | 21 | ManagerLevel managerLevel = (ManagerLevel) target; 22 | EditorGUILayout.LabelField("Custom Actions For ManagerLevel", EditorStyles.boldLabel); 23 | if (GUILayout.Button( "Add Scenes In Build To ManagerLevel's Level List")) 24 | { 25 | var scenes = EditorBuildSettings.scenes; 26 | managerLevel.Levels.Clear(); 27 | 28 | for (int i = 0; i < scenes.Length; i++) 29 | { 30 | var scene = scenes[i]; 31 | if (scene.enabled) 32 | { 33 | if (i == 0) 34 | { 35 | managerLevel.Levels.Add(new Level(i,false)); 36 | } 37 | else 38 | { 39 | managerLevel.Levels.Add(new Level(i,true)); 40 | } 41 | 42 | } 43 | } 44 | } 45 | } 46 | } 47 | } 48 | 49 | -------------------------------------------------------------------------------- /Scripts/Editor/Managers/ManagerLevel/ManagerLevelEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4cb6cdd2f37d30e408b7556f1a268e72 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e949a0f7611eb0e4d874aa0277a3ed32 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c9aed611ee000b145951e84d4fa0ed9e 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Actors.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1c22ef711bc566b4daba0a08acfffd70 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Actors/Actor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a1c9af3c68e1bf34fb52839e8c1162d3 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Actors/Actor/Actor.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace Tolian.Runtime.Core.Actors 4 | { 5 | /// 6 | /// Base class for Actors 7 | /// 8 | public abstract class Actor : MonoBehaviour 9 | { 10 | 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Actors/Actor/Actor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 436a0e3c3ccc7a94a9463d737fccf82a 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Actors/Actor/ActorAi.cs: -------------------------------------------------------------------------------- 1 | namespace Tolian.Runtime.Core.Actors 2 | { 3 | public class ActorAi : Actor 4 | { 5 | 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Actors/Actor/ActorAi.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 859b5295f69d79f4cac22de0d3d33f5a 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Actors/Actor/ActorPlayer.cs: -------------------------------------------------------------------------------- 1 | namespace Tolian.Runtime.Core.Actors 2 | { 3 | public class ActorPlayer : Actor 4 | { 5 | 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Actors/Actor/ActorPlayer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2ddb1217c6461e6429b59cd37ba041f9 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Actors/Actor/Controllers.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 708f26f2e56fdb84ba00222aab1bdd02 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Actors/Actor/Controllers/ControllerActorAnimator.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 56a6234740ac2c24abb6fa7e2bd77558 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Actors/Actor/Controllers/ControllerActorAnimator/ControllerActorAnimator.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 824356b3ff614a74681867357be189a0 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Actors/Actor/Controllers/ControllerActorController.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 337dbd819d7c52145a23d433214151cf 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Actors/Actor/Controllers/ControllerActorController/ControllerBaseControllerControllerBasePlayerJoystick.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 45be3e360094e174aaa180ce3961a562 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Actors/Actor/Controllers/ControllerActorController/ControllerControllerBase.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using System.Collections.Generic; 4 | using UnityEngine; 5 | 6 | namespace Tolian.Runtime.Core.Actors.Controllers.ControlSystem 7 | { 8 | public abstract class ControllerControllerBase : MonoBehaviour 9 | { 10 | #region Internals 11 | protected bool _preventControl; 12 | #endregion 13 | 14 | protected abstract void ControllerLogic(); 15 | 16 | public virtual void SetPreventControl(bool value) 17 | { 18 | _preventControl = value; 19 | } 20 | } 21 | } 22 | 23 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Actors/Actor/Controllers/ControllerActorController/ControllerControllerBase.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d1a1276c38f416a4493b157b9992985a 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Actors/Actor/Controllers/ControllerActorController/ControllerControllerBaseAi.cs: -------------------------------------------------------------------------------- 1 | namespace Tolian.Runtime.Core.Actors.Controllers.ControlSystem 2 | { 3 | public abstract class ControllerControllerBaseAi : ControllerControllerBase 4 | { 5 | 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Actors/Actor/Controllers/ControllerActorController/ControllerControllerBaseAi.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c3d0eecf27defe74ab1d059a9bae1517 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Actors/Actor/Controllers/ControllerActorController/ControllerControllerBasePlayer.cs: -------------------------------------------------------------------------------- 1 | 2 | using Tolian.Runtime.Core.Managers; 3 | 4 | namespace Tolian.Runtime.Core.Actors.Controllers.ControlSystem 5 | { 6 | public abstract class ControllerControllerBasePlayer : ControllerControllerBase 7 | { 8 | #region References 9 | public ManagerInput ManagerInput { get; protected set; } 10 | #endregion 11 | 12 | protected virtual void Start() 13 | { 14 | ManagerInput = ManagerServiceLocator.Instance.ServiceLocatorSystem.GetService(); 15 | } 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Actors/Actor/Controllers/ControllerActorController/ControllerControllerBasePlayer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1b0976a69d8b1f34fb627ff68a12b860 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Actors/Actor/Controllers/ControllerActorHealth.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cef7f21e28a333a48b486568f67bdd57 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Actors/Actor/Controllers/ControllerActorHealth/ControllerActorHealth.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace Tolian.Runtime.Core.Actors.Controllers.HealthSystem 4 | { 5 | public abstract class ControllerActorHealth : MonoBehaviour 6 | { 7 | public int Health { get; protected set; } 8 | 9 | public virtual void SetHealth(int targetHealth) 10 | { 11 | Health = targetHealth; 12 | } 13 | 14 | public void GetDamage(int damageAmount) 15 | { 16 | int newHealth = Health - damageAmount; 17 | if (newHealth < 0) newHealth = 0; 18 | 19 | SetHealth(newHealth); 20 | 21 | DamageZeroCallback(); 22 | } 23 | 24 | public abstract void DamageZeroCallback(); 25 | } 26 | } 27 | 28 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Actors/Actor/Controllers/ControllerActorHealth/ControllerActorHealth.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e0fb3e4e7c4e1de498ab951e1c5e5aa9 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Actors/Actor/Controllers/ControllerActorStack.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f6078fd5119c63043abfb8cb6126cb9f 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Actors/Actor/Controllers/ControllerActorStack/ControllerStack.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 274f62b91daa89742833692c5efb9d27 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Actors/Actor/Controllers/ControllerActorStack/StackSlot.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | namespace Tolian.Runtime.Core.Actors.StackSystem 6 | { 7 | public class StackSlot : MonoBehaviour 8 | { 9 | public Transform InsideObjectTransform; 10 | } 11 | } 12 | 13 | 14 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Actors/Actor/Controllers/ControllerActorStack/StackSlot.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b702f2d262b92ef48a3bf0fce0863d7b 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Actors/Actor/Controllers/ControllerActorWorldCanvas.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b63bc84472d0f4f4ba214e02b9a6ab5c 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Actors/Actor/Controllers/ControllerActorWorldCanvas/ControllerActorWorldCanvas.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using System.Collections.Generic; 4 | using DG.Tweening; 5 | using TMPro; 6 | using UnityEngine; 7 | using UnityEngine.UI; 8 | 9 | namespace Tolian.Runtime.Core.Actors.Controllers.WorldCanvasSystem 10 | { 11 | /// 12 | /// Base class for WorldCanvasControllers 13 | /// 14 | public abstract class ControllerActorWorldCanvas : MonoBehaviour 15 | { 16 | #region REFERENCES 17 | [SerializeField] protected TMP_Text _tmpText; 18 | [SerializeField] protected Slider _slider; 19 | #endregion 20 | 21 | #region INTERNAL VARIABLES 22 | protected Tween _sliderTween; 23 | #endregion 24 | 25 | public void SetTMPText(string value) 26 | { 27 | _tmpText.text = value; 28 | } 29 | 30 | public void SetSliderValue(float value) 31 | { 32 | _slider.value = value; 33 | } 34 | 35 | public void SetSliderValue(float value, float duration) 36 | { 37 | _sliderTween?.Kill(); 38 | _sliderTween = _slider.DOValue(value, duration); 39 | } 40 | 41 | public void SetSliderValue(float value, float duration, Action callback) 42 | { 43 | _sliderTween?.Kill(); 44 | _sliderTween = _slider.DOValue(value, duration) 45 | .OnComplete(()=>callback()); 46 | } 47 | 48 | } 49 | 50 | } 51 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Actors/Actor/Controllers/ControllerActorWorldCanvas/ControllerActorWorldCanvas.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6be6f3ec1bad2ec4aa90f82c20de7f6b 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Actors/Character.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: aa52dfd2d8a01e44bb0500d1a4d38de1 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Actors/Character/Character.cs: -------------------------------------------------------------------------------- 1 | 2 | namespace Tolian.Runtime.Core.Actors.Characters 3 | { 4 | /// 5 | /// Base class for Characters 6 | /// 7 | public abstract class Character : Actor 8 | { 9 | 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Actors/Character/Character.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 16cde6254971af64b9645bf8b879bac5 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Actors/Character/CharacterAi.cs: -------------------------------------------------------------------------------- 1 | 2 | namespace Tolian.Runtime.Core.Actors.Characters 3 | { 4 | public class CharacterAi : Character 5 | { 6 | 7 | } 8 | } 9 | 10 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Actors/Character/CharacterAi.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 86256eb4bd383eb478e42b7ae48ceb8d 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Actors/Character/CharacterPlayer.cs: -------------------------------------------------------------------------------- 1 | 2 | namespace Tolian.Runtime.Core.Actors.Characters 3 | { 4 | public class CharacterPlayer : Character 5 | { 6 | 7 | } 8 | } 9 | 10 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Actors/Character/CharacterPlayer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 83a9ef53bc3427b4e8d592084bbe7756 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Actors/Character/Controllers.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0dbd1fad7decc5b40ae88c5a99695b82 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Actors/Character/Controllers/ControllerCharacterRagdoll.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using Tolian.Runtime.Core.Actors.Controllers.AnimatorSystem; 5 | using UnityEngine; 6 | 7 | namespace Tolian.Runtime.Core.Actors.Characters.Controller.RagdollSystem 8 | { 9 | public class ControllerCharacterRagdoll : MonoBehaviour 10 | { 11 | [SerializeField] private Transform _parentTransform; 12 | 13 | private List _rigidbodies = new List(); 14 | private List _colliders = new List(); 15 | private Collider _mainCollider; 16 | 17 | private ControllerActorAnimator _controllerActorAnimator; 18 | 19 | private void Awake() 20 | { 21 | _rigidbodies = _parentTransform.GetComponentsInChildren().ToList(); 22 | _colliders = _parentTransform.GetComponentsInChildren().ToList(); 23 | _mainCollider = GetComponent(); 24 | _controllerActorAnimator = GetComponent(); 25 | } 26 | 27 | private void Start() 28 | { 29 | SetRagdollActiveness(false); 30 | } 31 | 32 | 33 | public void SetRagdollActiveness(bool value) 34 | { 35 | _controllerActorAnimator.SetAnimatorActiveness(!value); 36 | 37 | for (int i = 0; i < _rigidbodies.Count; i++) 38 | { 39 | _rigidbodies[i].isKinematic = !value; 40 | 41 | } 42 | 43 | for (int i = 0; i < _colliders.Count; i++) 44 | { 45 | _colliders[i].enabled = value; 46 | } 47 | 48 | _mainCollider.enabled = !value; 49 | 50 | 51 | } 52 | } 53 | } 54 | 55 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Actors/Character/Controllers/ControllerCharacterRagdoll.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 12f29b01d908c3a4a917fe30d25a6230 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Enums.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7165bb6ed652e114e925c386751158c8 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Enums/LevelStarterType.cs: -------------------------------------------------------------------------------- 1 | namespace Tolian.Runtime.Core.Enums 2 | { 3 | public enum LevelStarterType 4 | { 5 | StartWithinFirstFrame, 6 | StartWithFirstInput 7 | } 8 | } 9 | 10 | 11 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Enums/LevelStarterType.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ae1f9905820b5fd4994494eb73e1f25f 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Extentions.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 11345ad17f600c14d94e8f6444fbfb96 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Extentions/ScrollViewFocusFunctions.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: dd23407abf102af4b963a222a9a5d3b2 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/FactorySystem.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3b4d672b09e8344499cc6199c10609c9 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/FactorySystem/Factory.cs: -------------------------------------------------------------------------------- 1 | using Tolian.Runtime.Core.Interfaces; 2 | using Tolian.Runtime.Core.Managers; 3 | using Tolian.Runtime.Systems.ObjectPoolDomain; 4 | using UnityEngine; 5 | 6 | namespace Tolian.Runtime.Abstract.DesignPatterns.FactorySystem 7 | { 8 | /// 9 | /// For ABSTRACT FACTORY Design Pattern => Base and abstract class for Factories. 10 | /// 11 | public abstract class Factory : MonoBehaviour, IProvideObject 12 | { 13 | #region REFERENCES 14 | protected ManagerObjectPool _managerObjectPool; 15 | #endregion 16 | 17 | private void Start() 18 | { 19 | _managerObjectPool = ManagerServiceLocator.Instance.ServiceLocatorSystem.GetService(); 20 | } 21 | 22 | public virtual GameObject GetObjectFromObjectPool(ObjectPoolType targetObjectPoolType) 23 | { 24 | GameObject newGameObject = _managerObjectPool.ObjectPoolSystem.Spawn(targetObjectPoolType); 25 | newGameObject.transform.SetParent(transform); 26 | 27 | return newGameObject; 28 | } 29 | 30 | 31 | public virtual GameObject GetObjectFromPrefab(GameObject targetPrefab) 32 | { 33 | GameObject newGameObject = Instantiate(targetPrefab); 34 | newGameObject.transform.SetParent(transform); 35 | 36 | return newGameObject; 37 | } 38 | } 39 | 40 | } 41 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/FactorySystem/Factory.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c89cf8d6103e39d469162c1064be5d39 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Helpers.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 674561d3f39dcd34c91f93fdb0fbbd47 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Helpers/Gizmos.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 85506843145ba8a45aedeb518e3528d0 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Helpers/Gizmos/VisualGizmoAdder.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using System.Collections.Generic; 4 | using UnityEngine; 5 | 6 | namespace Tolian.Runtime.Helpers 7 | { 8 | public class VisualGizmoAdder : MonoBehaviour 9 | { 10 | #region Fields 11 | [SerializeField] private float _radius = 2; 12 | [SerializeField] private Color _color = Color.black; 13 | #endregion 14 | 15 | private void OnDrawGizmos() 16 | { 17 | Gizmos.color = _color; 18 | Gizmos.DrawSphere(transform.position, _radius); 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Helpers/Gizmos/VisualGizmoAdder.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d065e9b10070c5a4385412f476ad0a6a 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Helpers/RotationAngleClamper.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | namespace Tolian.Runtime.Helpers 6 | { 7 | public static class RotationAngleClamper 8 | { 9 | public static float ClampAngle(float angle, float min, float max) 10 | { 11 | 12 | angle = NormalizeAngle(angle); 13 | if (angle > 180) 14 | { 15 | angle -= 360; 16 | } 17 | else if (angle < -180) 18 | { 19 | angle += 360; 20 | } 21 | 22 | min = NormalizeAngle(min); 23 | if (min > 180) 24 | { 25 | min -= 360; 26 | } 27 | else if (min < -180) 28 | { 29 | min += 360; 30 | } 31 | 32 | max = NormalizeAngle(max); 33 | if (max > 180) 34 | { 35 | max -= 360; 36 | } 37 | else if (max < -180) 38 | { 39 | max += 360; 40 | } 41 | 42 | // Aim is, convert angles to -180 until 180. 43 | return Mathf.Clamp(angle, min, max); 44 | } 45 | 46 | /** If angles over 360 or under 360 degree, then normalize them. 47 | */ 48 | private static float NormalizeAngle(float angle) 49 | { 50 | while (angle > 360) 51 | angle -= 360; 52 | while (angle < 0) 53 | angle += 360; 54 | return angle; 55 | } 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Helpers/RotationAngleClamper.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0059ccde8db9b8242aabe33ee55ef15d 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Helpers/Starters.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 11d3abd6b682df348a683249df9a9d04 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Helpers/Starters/GameStarter.cs: -------------------------------------------------------------------------------- 1 | using Tolian.Runtime.Core.Managers; 2 | using UnityEngine; 3 | using UnityEngine.SceneManagement; 4 | 5 | [DefaultExecutionOrder(100)] 6 | public class GameStarter : MonoBehaviour 7 | { 8 | private void Start() 9 | { 10 | ManagerServiceLocator.Instance.ServiceLocatorSystem.GetService().OpenTheSameLevel(true); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Helpers/Starters/GameStarter.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c3cf675ebb1d8b54da2e4faeb742ff4f 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Helpers/Starters/LevelStarter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using System.Collections.Generic; 4 | using Tolian.Runtime.Core.Enums; 5 | using Tolian.Runtime.Core.Managers; 6 | using Tolian.Runtime.Core.Managers.GameSystem; 7 | using UnityEngine; 8 | using UnityEngine.EventSystems; 9 | 10 | public class LevelStarter : MonoBehaviour 11 | { 12 | #region REFERENCES 13 | public ManagerGame ManagerGame { get; private set; } 14 | 15 | #endregion 16 | 17 | #region Variables 18 | [SerializeField] private LevelStarterType _levelStarterType; 19 | 20 | private const string UITARGETTAG = "InGameButton"; //Declare and def 21 | #endregion 22 | 23 | private void Start() 24 | { 25 | ManagerGame = ManagerServiceLocator.Instance.ServiceLocatorSystem.GetService(); 26 | 27 | switch (_levelStarterType) 28 | { 29 | case LevelStarterType.StartWithinFirstFrame: 30 | ManagerGame.SetCurrentGameStateType(GameStateType.LevelStarted); 31 | break; 32 | case LevelStarterType.StartWithFirstInput: 33 | 34 | break; 35 | default: 36 | throw new ArgumentOutOfRangeException(); 37 | } 38 | } 39 | 40 | private void Update() 41 | { 42 | if (ManagerGame.CurrentGameStateType == GameStateType.LevelOpened) 43 | { 44 | if (Input.GetMouseButton(0) || Input.touchCount > 0) 45 | { 46 | if (!IsPointerOverTargetUiObject(UITARGETTAG)) 47 | { 48 | ManagerGame.SetCurrentGameStateType(GameStateType.LevelStarted); 49 | } 50 | } 51 | } 52 | } 53 | 54 | private bool IsPointerOverTargetUiObject(string targetGameObjectTag) 55 | { 56 | if (!EventSystem.current.IsPointerOverGameObject()) return false; 57 | if (EventSystem.current.currentSelectedGameObject == null) return false; 58 | if (EventSystem.current.currentSelectedGameObject.CompareTag(targetGameObjectTag)) return true; 59 | 60 | return false; 61 | } 62 | } -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Helpers/Starters/LevelStarter.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7c99ba9192b805a49917ff7d0ca09d1c 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Helpers/Undestroyable.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using System.Collections.Generic; 4 | using UnityEngine; 5 | 6 | namespace Tolian.Runtime.Helpers 7 | { 8 | public class Undestroyable : MonoBehaviour 9 | { 10 | #region Fields 11 | [SerializeField] private bool _isUndestroyable; 12 | #endregion 13 | 14 | #region Properties 15 | public bool IsUndestroyable => _isUndestroyable; 16 | #endregion 17 | 18 | private void Awake() 19 | { 20 | if (IsUndestroyable) 21 | { 22 | DontDestroyOnLoad(this.gameObject); 23 | } 24 | } 25 | } 26 | } 27 | 28 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Helpers/Undestroyable.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: dded9c778b722894ba2729887c017f54 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Helpers/UpdateFrameFrequencyController.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using System.Collections.Generic; 4 | using Tolian.Runtime.Core.Interfaces; 5 | using UnityEngine; 6 | 7 | namespace Tolian.Runtime.Helpers 8 | { 9 | public class UpdateFrameFrequencyController : MonoBehaviour 10 | { 11 | //Update start variables 12 | protected bool _isUpdateActive = false; 13 | protected int _startFrame = 0; 14 | [SerializeField] protected int _targetFrameRate = 60; 15 | 16 | //Update time check variables 17 | protected float _timer = 0; 18 | protected float _durationBetweenCalls = 0.5f; 19 | 20 | protected ISetUpdateFunction _iSetUpdateFunction; 21 | 22 | protected virtual void Awake() 23 | { 24 | _startFrame = UnityEngine.Random.Range(0, _targetFrameRate); 25 | } 26 | 27 | protected virtual IEnumerator Start() 28 | { 29 | int currentFrame = 0; 30 | 31 | while (!_isUpdateActive) 32 | { 33 | currentFrame++; 34 | 35 | if (currentFrame >= _startFrame) 36 | { 37 | _isUpdateActive = true; 38 | yield break; 39 | } 40 | 41 | yield return new WaitForEndOfFrame(); 42 | } 43 | } 44 | 45 | protected virtual void Update() 46 | { 47 | if(!_isUpdateActive) return; 48 | 49 | if (_timer >= _durationBetweenCalls) 50 | { 51 | if (_iSetUpdateFunction != null) 52 | { 53 | _iSetUpdateFunction.UpdateFunction(); 54 | } 55 | 56 | _timer = 0; 57 | } 58 | 59 | _timer += Time.deltaTime; 60 | } 61 | 62 | public void SetDurationBetweenCalls(float targetValue) 63 | { 64 | _durationBetweenCalls = targetValue; 65 | } 66 | 67 | public void SetISetUpdateFunction(ISetUpdateFunction targetISetUpdateFunction) 68 | { 69 | _iSetUpdateFunction = targetISetUpdateFunction; 70 | } 71 | } 72 | } 73 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Helpers/UpdateFrameFrequencyController.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3ec5a4dd9dd547645add8fcd4e022c3e 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Interfaces.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6b9440b9fcdc23f41a065a6e412e5264 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Interfaces/IProvideObject.cs: -------------------------------------------------------------------------------- 1 | using Tolian.Runtime.Systems.ObjectPoolDomain; 2 | using UnityEngine; 3 | 4 | namespace Tolian.Runtime.Core.Interfaces 5 | { 6 | public interface IProvideObject 7 | { 8 | GameObject GetObjectFromObjectPool(ObjectPoolType targetObjectPoolType); 9 | GameObject GetObjectFromPrefab(GameObject targetPrefab); 10 | } 11 | } 12 | 13 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Interfaces/IProvideObject.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8a2194051d06dc04c85dcf259b0f820c 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Interfaces/ISetUpdateFunction.cs: -------------------------------------------------------------------------------- 1 | namespace Tolian.Runtime.Core.Interfaces 2 | { 3 | public interface ISetUpdateFunction 4 | { 5 | void UpdateFunction(); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Interfaces/ISetUpdateFunction.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3eab588f25538a64a95207e03452cb80 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Managers.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 55f43d2e852189640812a2122f48fd08 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Managers/ManagerAddressable.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a96c66aad7adcc647a999dabfaf9ed9e 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Managers/ManagerAddressable/ManagerAddressable.cs: -------------------------------------------------------------------------------- 1 | using Tolian.Runtime.Systems.AddressablesDomain; 2 | using Tolian.Runtime.Systems.ServiceLocatorDomain; 3 | using UnityEngine; 4 | 5 | 6 | namespace Tolian.Runtime.Core.Managers 7 | { 8 | [RequireComponent(typeof(AddressablesSystem))] 9 | public class ManagerAddressable : MonoBehaviourService 10 | { 11 | public AddressablesSystem AddressablesSystem { get; private set; } 12 | 13 | protected override void Awake() 14 | { 15 | base.Awake(); 16 | AddressablesSystem = GetComponent(); 17 | } 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Managers/ManagerAddressable/ManagerAddressable.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7f4aa0fe509bc80458cb738ff40e8d15 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Managers/ManagerCinemachine.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fe7fd75640c914a4195e0335265ddd5c 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Managers/ManagerCinemachine/ManagerCinemachine.cs: -------------------------------------------------------------------------------- 1 | using Tolian.Runtime.Systems.CinemachineDomain; 2 | using Tolian.Runtime.Systems.ServiceLocatorDomain; 3 | using UnityEngine; 4 | 5 | namespace Tolian.Runtime.Core.Managers 6 | { 7 | /// 8 | /// This class handles all Cinemachine related operations via "CinemachineSystem" 9 | /// 10 | 11 | [RequireComponent(typeof(CinemachineSystem))] 12 | public class ManagerCinemachine : MonoBehaviourService 13 | { 14 | public CinemachineSystem CinemachineSystem { get; private set; } 15 | 16 | protected override void Awake() 17 | { 18 | base.Awake(); 19 | CinemachineSystem = GetComponent(); 20 | } 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Managers/ManagerCinemachine/ManagerCinemachine.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9c9f65a1cbb34c24499cf2f9afa07264 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Managers/ManagerEvent.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: aa04375d30d498e4a8caf3b95d22479d 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Managers/ManagerEvent/ManagerEvent.cs: -------------------------------------------------------------------------------- 1 | using Tolian.Runtime.Systems.EventDomain; 2 | using Tolian.Runtime.Systems.ServiceLocatorDomain; 3 | using UnityEngine; 4 | 5 | namespace Tolian.Runtime.Core.Managers 6 | { 7 | /// 8 | /// This class controls all the C# events in the game via EventSystem. 9 | /// This class is provides Observer design pattern. 10 | /// 11 | [RequireComponent(typeof(EventSystem))] 12 | public class ManagerEvent : MonoBehaviourService 13 | { 14 | #region REF 15 | public EventSystem EventSystem { get; private set; } 16 | #endregion 17 | 18 | protected override void Awake() 19 | { 20 | base.Awake(); 21 | EventSystem = GetComponent(); 22 | } 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Managers/ManagerEvent/ManagerEvent.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d99ffa10d8b0382419bb3f7d8780fa77 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Managers/ManagerGame.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0160664868b16c146ae29d3d2f303993 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Managers/ManagerGame/GameStateType.cs: -------------------------------------------------------------------------------- 1 | namespace Tolian.Runtime.Core.Managers.GameSystem 2 | { 3 | public enum GameStateType 4 | { 5 | Loading, 6 | Menu, 7 | GamePaused, 8 | LevelOpened, 9 | LevelStarted, 10 | LevelFinished, 11 | LevelEnding 12 | } 13 | } 14 | 15 | 16 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Managers/ManagerGame/GameStateType.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 21968b030fe53744dbdd41f2a4aca43a 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Managers/ManagerGame/ManagerGame.cs: -------------------------------------------------------------------------------- 1 | using Tolian.Runtime.Core.Managers.GameSystem; 2 | using Tolian.Runtime.Systems.EventDomain; 3 | using Tolian.Runtime.Systems.ServiceLocatorDomain; 4 | using UnityEngine; 5 | 6 | namespace Tolian.Runtime.Core.Managers 7 | { 8 | public sealed class ManagerGame : MonoBehaviourService 9 | { 10 | /// 11 | /// The one of the most important variable in the system. The most logics depends on this. 12 | /// 13 | private GameStateType _currentGameStateType; 14 | public GameStateType CurrentGameStateType => _currentGameStateType; 15 | 16 | protected override void Awake() 17 | { 18 | base.Awake(); 19 | SetQualityAndFPS(); 20 | } 21 | 22 | /// 23 | /// This function can be extended by giving specific values according to target platform. 24 | /// Besides, this function can be linked to "Ui Settings" and Save System 25 | /// 26 | private void SetQualityAndFPS() 27 | { 28 | #if UNITY_ANDROID || UNITY_IOS 29 | QualitySettings.vSyncCount = 0; 30 | Application.targetFrameRate = 60; 31 | #endif 32 | } 33 | 34 | protected override void OnDisable() 35 | { 36 | base.OnDisable(); 37 | } 38 | 39 | /// 40 | /// Set the CurrentGameStateType here. In addition, this function rises "OnGameStateChange" event to notify all systems in the games. 41 | /// 42 | /// 43 | public void SetCurrentGameStateType(GameStateType gameStateType) 44 | { 45 | _currentGameStateType = gameStateType; 46 | ManagerServiceLocator.Instance.ServiceLocatorSystem.GetService().EventSystem.GetEvent().Execute(gameStateType); 47 | } 48 | } 49 | 50 | } 51 | 52 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Managers/ManagerGame/ManagerGame.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ceb8f955a0230f34a9dfcdbae792f3c6 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Managers/ManagerInput.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4e1783d3a8df3644980ac637c47a9c44 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Managers/ManagerInput/ManagerInput.cs: -------------------------------------------------------------------------------- 1 | using Tolian.Runtime.Core.Managers.UiSystem; 2 | using Tolian.Runtime.Systems.InputDomain; 3 | using Tolian.Runtime.Systems.ServiceLocatorDomain; 4 | using UnityEngine; 5 | 6 | namespace Tolian.Runtime.Core.Managers 7 | { 8 | [DefaultExecutionOrder(100)] 9 | [RequireComponent(typeof(InputSystem))] 10 | public class ManagerInput : MonoBehaviourService 11 | { 12 | #region REFERENCES 13 | public InputSystem InputSystem { get; private set; } 14 | public ControllerUiJoystickCanvas ControllerUiJoystickCanvas { get; private set; } 15 | #endregion 16 | 17 | protected override void Awake() 18 | { 19 | base.Awake(); 20 | 21 | //REFERENCES 22 | InputSystem = GetComponent(); 23 | } 24 | 25 | private void Start() 26 | { 27 | //REFERENCES 28 | ControllerUiJoystickCanvas = ManagerServiceLocator.Instance.ServiceLocatorSystem.GetService() 29 | .ControllerUiJoystickCanvas; 30 | 31 | if (InputSystem.InputType == InputType.Joystick) 32 | { 33 | switch (InputSystem.JoystickType) 34 | { 35 | case JoystickType.Static: 36 | ControllerUiJoystickCanvas.SetActiveJoystick(JoystickType.Static); 37 | 38 | break; 39 | 40 | case JoystickType.Floating: 41 | ControllerUiJoystickCanvas.SetActiveJoystick(JoystickType.Floating); 42 | 43 | break; 44 | 45 | case JoystickType.Dynamic: 46 | ControllerUiJoystickCanvas.SetActiveJoystick(JoystickType.Dynamic); 47 | break; 48 | } 49 | 50 | } 51 | 52 | } 53 | 54 | } 55 | 56 | } 57 | 58 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Managers/ManagerInput/ManagerInput.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4b2dcce73906a4646b9e66e60ce869ea 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Managers/ManagerLevel.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 893e4c5a667d1c14a8fc265a533fa179 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Managers/ManagerLevel/Level.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | namespace Tolian.Runtime.Core.Managers.LevelSystem 6 | { 7 | [System.Serializable] 8 | public class Level 9 | { 10 | public int LevelIndex; 11 | public bool IsLevelReturnable = true; 12 | 13 | public Level(int levelIndex, bool isLevelReturnable) 14 | { 15 | LevelIndex = levelIndex; 16 | IsLevelReturnable = isLevelReturnable; 17 | } 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Managers/ManagerLevel/Level.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 917b3d67904371845a6149b34bef7359 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Managers/ManagerLevel/ManagerLevel.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b4ed1489ff649e94f8177ff2589fe94b 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Managers/ManagerSave.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 00f31ebf0dfdf114cabc78a8be4e91a3 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Managers/ManagerSave/ManagerSave.cs: -------------------------------------------------------------------------------- 1 | using Tolian.Runtime.Systems.SaveDomain; 2 | using Tolian.Runtime.Systems.ServiceLocatorDomain; 3 | using UnityEngine; 4 | 5 | namespace Tolian.Runtime.Core.Managers 6 | { 7 | [RequireComponent(typeof(SaveSystem))] 8 | public class ManagerSave : MonoBehaviourService 9 | { 10 | public SaveSystem SaveSystem { get; private set; } 11 | 12 | protected override void Awake() 13 | { 14 | base.Awake(); 15 | SaveSystem = GetComponent(); 16 | } 17 | } 18 | } 19 | 20 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Managers/ManagerSave/ManagerSave.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 70beed2cf98253b48a7c889b4f4ba9d2 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Managers/ManagerServiceLocator.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1e46125beee72e54f8cb16eab1ce9815 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Managers/ManagerServiceLocator/ManagerServiceLocator.cs: -------------------------------------------------------------------------------- 1 | using Tolian.Runtime.Abstract.DesignPatterns.SingletonSystem; 2 | using Tolian.Runtime.Systems.ServiceLocatorDomain; 3 | using UnityEngine; 4 | 5 | 6 | namespace Tolian.Runtime.Core.Managers 7 | { 8 | /// 9 | /// This is the main class that gives us to reach the essential classes. 10 | /// This class is using Singleton design patterns. Therefore, it can be accessed with static instance. 11 | /// In order to add new class, please refer to "MonoBehaviourService" classes. The new classes should be inherited from "MonoBehaviourService" and automatically registered to "ServiceLocatorSystem" 12 | /// 13 | /// 14 | [DefaultExecutionOrder(-50)] 15 | [RequireComponent(typeof(ServiceLocatorSystem))] 16 | public class ManagerServiceLocator : Singleton 17 | { 18 | #region REFERENCES 19 | public ServiceLocatorSystem ServiceLocatorSystem { get; private set; } 20 | #endregion 21 | 22 | protected override void Awake() 23 | { 24 | base.Awake(); 25 | ServiceLocatorSystem = GetComponent(); 26 | } 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Managers/ManagerServiceLocator/ManagerServiceLocator.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 90ac0b1f96594cd4f919f801dcb1b89f 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Managers/ManagerSound.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 36e3765858c39ee41a8a7e7daaedbcbd 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Managers/ManagerSound/ManagerSound.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Tolian.Runtime.Systems.SaveDomain; 3 | using Tolian.Runtime.Systems.ServiceLocatorDomain; 4 | using Tolian.Runtime.Systems.SoundDomain; 5 | using UnityEngine; 6 | 7 | namespace Tolian.Runtime.Core.Managers 8 | { 9 | /// 10 | /// Manage Sounds Here 11 | /// 12 | 13 | [RequireComponent(typeof(SoundSystem))] 14 | public class ManagerSound : MonoBehaviourService 15 | { 16 | private SaveSystem _saveSystem; 17 | private SoundSystem _soundSystem; 18 | public SoundSystem SoundSystem 19 | { 20 | get 21 | { 22 | if (_saveSystem != null && _saveSystem.SaveState != null) 23 | { 24 | bool isSoundOn = _saveSystem.SaveState.IsVibrationOn; 25 | 26 | _soundSystem.SetPreventSound(!isSoundOn); 27 | } 28 | 29 | return _soundSystem; 30 | } 31 | private set { } 32 | } 33 | 34 | protected override void Awake() 35 | { 36 | base.Awake(); 37 | _soundSystem = GetComponent(); 38 | } 39 | 40 | private void Start() 41 | { 42 | _saveSystem = ManagerServiceLocator.Instance.ServiceLocatorSystem.GetService().SaveSystem; 43 | } 44 | 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Managers/ManagerSound/ManagerSound.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8b329884024bc6148b74b74e7b42dcf7 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Managers/ManagerUi.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ca127756c54bd6546ba750b6ca2f5a35 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Managers/ManagerUi/ControllerUiCanvases.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using System.Collections.Generic; 4 | using Tolian.Runtime.Core.Managers.GameSystem; 5 | using Tolian.Runtime.Systems.EventDomain; 6 | using Tolian.Runtime.Systems.UiDomain; 7 | using UnityEngine; 8 | 9 | namespace Tolian.Runtime.Core.Managers.UiSystem 10 | { 11 | /// 12 | /// This class controls opening and closing canvases via "UiCanvasSystem" 13 | /// 14 | [RequireComponent(typeof(UiCanvasSystem))] 15 | public class ControllerUiCanvases : MonoBehaviour 16 | { 17 | #region REFERENCES 18 | private ManagerEvent _managerEvent; 19 | public UiCanvasSystem UiCanvasSystem { get; private set; } 20 | #endregion 21 | 22 | #region VARIABLES 23 | [SerializeField] protected List _levelOpeningCanvases = new(); 24 | #endregion 25 | 26 | 27 | private void Awake() 28 | { 29 | UiCanvasSystem = GetComponent(); 30 | } 31 | 32 | private void OnDisable() 33 | { 34 | _managerEvent.EventSystem.GetEvent().RemoveListener(SetCanvasesAccordingToGameState); 35 | } 36 | 37 | private void Start() 38 | { 39 | _managerEvent = ManagerServiceLocator.Instance.ServiceLocatorSystem.GetService(); 40 | _managerEvent.EventSystem.GetEvent().AddListener(SetCanvasesAccordingToGameState); 41 | } 42 | 43 | public void SetCanvasesAccordingToGameState(GameStateType gameStateType) 44 | { 45 | if (gameStateType == GameStateType.LevelOpened) 46 | { 47 | UiCanvasSystem.SetActivenessOfAllCanvases(false); 48 | 49 | for (int i = 0; i < _levelOpeningCanvases.Count; i++) 50 | { 51 | UiCanvasSystem.SetActivenessOfSpecificCanvas(_levelOpeningCanvases[i],true); 52 | } 53 | } 54 | else if (gameStateType == GameStateType.LevelStarted) 55 | { 56 | UiCanvasSystem. SetActivenessOfSpecificCanvas(CanvasType.CanvasInGameButton,false); 57 | } 58 | } 59 | } 60 | 61 | } 62 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Managers/ManagerUi/ControllerUiCanvases.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2306e8d1ed9ec4942b5c75b8a90b4cd3 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Managers/ManagerUi/ControllerUiJoystickCanvas.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 210d2ae8f36ea0041ad31d9497dc9cdd 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Managers/ManagerUi/ControllerUiLevelCanvas.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using DG.Tweening; 4 | using TMPro; 5 | using UnityEngine; 6 | using UnityEngine.UI; 7 | 8 | namespace Tolian.Runtime.Core.Managers.UiSystem 9 | { 10 | /// 11 | /// This class controls Ui objects such as levelNo, levelProgress etc which reflects data related to current level 12 | /// 13 | public class ControllerUiLevelCanvas : MonoBehaviour 14 | { 15 | [SerializeField] private TMP_Text _level; 16 | [SerializeField] private Slider _fillSlider; 17 | private Tween _fillTween; 18 | 19 | private void SetLevelId() 20 | { 21 | _level.text = ManagerServiceLocator.Instance.ServiceLocatorSystem.GetService().SaveSystem.SaveState.LevelCounter.ToString(); 22 | } 23 | 24 | public void SetLevelProgress(float value, float duration) 25 | { 26 | _fillTween?.Kill(); 27 | _fillTween = DOTween.To(() => _fillSlider.value, 28 | x => _fillSlider.value = x, 29 | value, 30 | duration); 31 | } 32 | 33 | public void SetLevelProgress(float value) 34 | { 35 | _fillSlider.value = value; 36 | } 37 | } 38 | } 39 | 40 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Managers/ManagerUi/ControllerUiLevelCanvas.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7f3a622c81eb4624f81677def33929c1 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Managers/ManagerUi/ControllerUiLoadingCanvas.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using TMPro; 4 | using UnityEngine; 5 | using UnityEngine.UI; 6 | 7 | namespace Tolian.Runtime.Core.Managers.UiSystem 8 | { 9 | public class ControllerUiLoadingCanvas : MonoBehaviour 10 | { 11 | [SerializeField] private Slider _loadingSlider; 12 | [SerializeField] private TMP_Text _loadingText; 13 | 14 | public void SetSliderValue(float value) 15 | { 16 | value = Mathf.Clamp01(value); 17 | _loadingSlider.value = value; 18 | _loadingText.text = $"{value * 100}%"; 19 | } 20 | 21 | } 22 | } 23 | 24 | 25 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Managers/ManagerUi/ControllerUiLoadingCanvas.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 204b71cd922f06a4b857b164707443e5 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Managers/ManagerUi/ControllerUiMoneyCanvas.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e88c76ae7fc92dc40a6cbe8701ff6392 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Managers/ManagerUi/ControllerUiPointerCanvas.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 564a5c3ab4b07c944b25b56da4cf7bf8 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Managers/ManagerUi/ControllerUiRank.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 37edc05e68d118b4c9121fdfd53c2f0f 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Managers/ManagerUi/ControllerUiTutorialCanvas.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3c8b9edcd85e94842a6a912da7cd6f0a 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Managers/ManagerUi/ManagerUi.cs: -------------------------------------------------------------------------------- 1 | using Tolian.Runtime.Core.Managers.UiSystem; 2 | using Tolian.Runtime.Systems.ServiceLocatorDomain; 3 | 4 | namespace Tolian.Runtime.Core.Managers 5 | { 6 | /// 7 | /// This is the main class that includes all ui control classes, except for "World Space Canvases". 8 | /// 9 | public class ManagerUi : MonoBehaviourService 10 | { 11 | #region REFERENCES 12 | public ControllerUiCanvases ControllerUiCanvases { get; protected set; } 13 | public ControllerUiJoystickCanvas ControllerUiJoystickCanvas { get; protected set; } 14 | public ControllerUiLevelCanvas ControllerUiLevelCanvas { get; protected set; } 15 | public ControllerUiTutorialCanvas ControllerUiTutorialCanvas { get; protected set; } 16 | public ControllerUiPointerCanvas ControllerUiPointerCanvas { get; protected set; } 17 | public ControllerUiMoneyCanvas ControllerUiMoneyCanvas { get; protected set; } 18 | public ControllerUiLoadingCanvas ControllerUiLoadingCanvas { get; protected set; } 19 | #endregion 20 | 21 | protected override void Awake() 22 | { 23 | base.Awake(); 24 | 25 | ControllerUiCanvases = GetComponent(); 26 | ControllerUiJoystickCanvas = GetComponent(); 27 | ControllerUiLevelCanvas = GetComponent(); 28 | ControllerUiTutorialCanvas = GetComponent(); 29 | ControllerUiPointerCanvas = GetComponent(); 30 | ControllerUiMoneyCanvas = GetComponent(); 31 | ControllerUiLoadingCanvas = GetComponent(); 32 | } 33 | 34 | } 35 | } 36 | 37 | 38 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Managers/ManagerUi/ManagerUi.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 63c44ec6dcc91f04aa1fb5983a2b5856 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Managers/ManagerVibrate.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f0791a03c2d8e384fb7aaf92d75e9de0 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Managers/ManagerVibrate/ManagerVibration.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using MoreMountains.NiceVibrations; 3 | using Tolian.Runtime.Systems.SaveDomain; 4 | using Tolian.Runtime.Systems.ServiceLocatorDomain; 5 | using Tolian.Runtime.Systems.VibrateDomain; 6 | using UnityEngine; 7 | 8 | namespace Tolian.Runtime.Core.Managers 9 | { 10 | [RequireComponent(typeof(VibrateSystem))] 11 | public class ManagerVibration : MonoBehaviourService 12 | { 13 | private SaveSystem _saveSystem; 14 | private VibrateSystem _vibrateSystem; 15 | public VibrateSystem VibrateSystem 16 | { 17 | get 18 | { 19 | if (_saveSystem != null && _saveSystem.SaveState != null) 20 | { 21 | bool isVibrationOn = _saveSystem.SaveState.IsVibrationOn; 22 | 23 | _vibrateSystem.SetPreventVibration(!isVibrationOn); 24 | } 25 | 26 | 27 | return _vibrateSystem; 28 | } 29 | private set { } 30 | } 31 | 32 | protected override void Awake() 33 | { 34 | base.Awake(); 35 | VibrateSystem = GetComponent(); 36 | } 37 | 38 | private void Start() 39 | { 40 | _saveSystem = ManagerServiceLocator.Instance.ServiceLocatorSystem.GetService().SaveSystem; 41 | } 42 | } 43 | 44 | } 45 | 46 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Managers/ManagerVibrate/ManagerVibration.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 163df95de07b9f44081e28a2e8970a14 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Managers/ManagerWisdomSDK.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 887bc47cb25dc534991e1313c7fd7093 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Managers/ManagerWisdomSDK/ManagerWisdomSDK.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 51db4b23290e8ec40b2b0f0a6e619806 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/ScriptableObjects.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 43649d02c343d764fbb38a8235a02879 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/ScriptableObjects/Data.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 460baf6551c6af540ba56d691dfa6d09 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/ScriptableObjects/Data/Character.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cb8d2d957787dfb4b85d4e26d0a19894 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/ScriptableObjects/Data/Character/PlayerDataSO.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | namespace Tolian.Runtime.Core.ScriptableObjects.Data 6 | { 7 | [CreateAssetMenu(fileName = "PlayerData", menuName = "TolianGames/Data/Character/PlayerData")] 8 | public class PlayerDataSO : CharacterData 9 | { 10 | 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/ScriptableObjects/Data/Character/PlayerDataSO.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 57efbc7262ecc6241bf3e297babe6de6 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/ScriptableObjects/Data/CharacterData.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | namespace Tolian.Runtime.Core.ScriptableObjects.Data 6 | { 7 | public abstract class CharacterData : ScriptableObject 8 | { 9 | public float MovementMultiplier; 10 | public float RotationMultiplier; 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/ScriptableObjects/Data/CharacterData.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2a8c7257dc82ccb4aa0c1fcbfa431a59 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/ScriptableObjects/Data/Sounds.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f8566f4dd007e4a4ab1686c08185ba1f 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/ScriptableObjects/Data/Sounds/SoundsGameplayDataSO.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | namespace Tolian.Runtime.Core.ScriptableObjects.Data 6 | { 7 | [CreateAssetMenu(fileName = "SoundsGameplayDataSO", menuName = "TolianGames/Data/Sound/SoundsGameplayDataSO")] 8 | public class SoundsGameplayDataSO : ScriptableObject 9 | { 10 | [Header("Collectables")] 11 | public AudioClip CoingCollectableSFX; 12 | public AudioClip FancyCoinCollectableSFX; 13 | public AudioClip ItemCollectableSFX; 14 | public AudioClip BubbleSFX; 15 | 16 | [Header("Others")] 17 | public AudioClip TimeTickingSFX; 18 | public AudioClip EatingSFX; 19 | public AudioClip SlideUpSFX; 20 | public AudioClip SlideDownSFX; 21 | } 22 | } 23 | 24 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/ScriptableObjects/Data/Sounds/SoundsGameplayDataSO.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bb4b4b64857c1294a8496b9dd8f34cc8 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/ScriptableObjects/Data/Sounds/SoundsUiDataSO.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | namespace Tolian.Runtime.Core.ScriptableObjects.Data 6 | { 7 | [CreateAssetMenu(fileName = "SoundsUiDataSO", menuName = "TolianGames/Data/Sound/SoundsUiDataSO")] 8 | 9 | public class SoundsUiDataSO : ScriptableObject 10 | { 11 | public AudioClip ButtonSelectSFX; 12 | public AudioClip ButtonExitSFX; 13 | public AudioClip ButtonToggleSFX; 14 | public AudioClip PopUpSFX; 15 | public AudioClip StarSFX; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/ScriptableObjects/Data/Sounds/SoundsUiDataSO.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bd9cfbcfd9699bf4fbb8413d1dcad37e 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/ScriptableObjects/Data/Ui.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 56f665a90c15e2f4b8e055e16ad329b2 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/ScriptableObjects/Data/Ui/CharacterIconsSO.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | namespace Tolian.Runtime.Core.ScriptableObjects.Data 6 | { 7 | [CreateAssetMenu(fileName = "CharacterIcons", menuName = "TolianGames/Data/UI/CharacterIcons")] 8 | public class CharacterIconsSO : ScriptableObject 9 | { 10 | public List CharacterIcons; 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/ScriptableObjects/Data/Ui/CharacterIconsSO.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bad7fdb9a490def4e999191bf4c8075f 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/ScriptableObjects/Events.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9a17b1155ef5a504ab4abf9dcf2f1211 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/ScriptableObjects/Events/Base.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 77b34c45ffbf3fa45b4394430eeb0e72 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/ScriptableObjects/Events/Base/EventChannel.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using Tolian.ScriptableSystem; 4 | using UnityEngine; 5 | 6 | namespace Tolian.ScriptableSystem 7 | { 8 | public abstract class EventChannel : ScriptableObject 9 | { 10 | protected List> _eventListeners = new List>(); 11 | 12 | public virtual void RaiseEvent(T eventParameter) 13 | { 14 | for (int i = _eventListeners.Count - 1; i >= 0; i--) 15 | { 16 | _eventListeners[i].OnInvokeRelatedActions(eventParameter, this);; 17 | } 18 | } 19 | 20 | public virtual void SubscribeEventListener(EventListener eventListener) 21 | { 22 | if (!_eventListeners.Contains(eventListener)) 23 | { 24 | _eventListeners.Add(eventListener); 25 | } 26 | } 27 | 28 | public virtual void UnsubscribeEventListener(EventListener eventListener) 29 | { 30 | if(_eventListeners.Contains(eventListener)) 31 | { 32 | _eventListeners.Remove(eventListener); 33 | } 34 | } 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/ScriptableObjects/Events/Base/EventChannel.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 70c700e9e92d2884ab3abe3d0988aaf0 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/ScriptableObjects/Events/Base/EventListener.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | using UnityEngine; 6 | using UnityEngine.Rendering; 7 | 8 | namespace Tolian.ScriptableSystem 9 | { 10 | public abstract class EventListener : MonoBehaviour 11 | { 12 | [SerializeField] protected List> _eventChannels = new List>(); 13 | public List>EventChannels => _eventChannels; 14 | 15 | protected Dictionary, Action> _eventChannelActionDictionary = 16 | new Dictionary, Action>(); 17 | 18 | protected void Awake() 19 | { 20 | CreateDictionary(); 21 | } 22 | 23 | protected void OnEnable() 24 | { 25 | for (int i = 0; i < _eventChannels.Count; i++) 26 | { 27 | _eventChannels[i].SubscribeEventListener(this); 28 | } 29 | } 30 | 31 | protected void OnDisable() 32 | { 33 | for (int i = 0; i < _eventChannels.Count; i++) 34 | { 35 | _eventChannels[i].UnsubscribeEventListener(this); 36 | } 37 | } 38 | 39 | public void OnInvokeRelatedActions(T eventParameter, EventChannel eventChannel) 40 | { 41 | var action = _eventChannelActionDictionary[eventChannel]; 42 | action?.Invoke(eventParameter); 43 | 44 | } 45 | 46 | public void SetActionDelegates(EventChannel eventChannel, Action newFunction) 47 | { 48 | var targetAction = _eventChannelActionDictionary[eventChannel]; 49 | targetAction += newFunction; 50 | _eventChannelActionDictionary[eventChannel] = targetAction; 51 | } 52 | 53 | protected void CreateDictionary() 54 | { 55 | for (int i = 0; i < _eventChannels.Count; i++) 56 | { 57 | Action newAction = null; 58 | 59 | _eventChannelActionDictionary.Add(_eventChannels[i], newAction); 60 | } 61 | } 62 | 63 | 64 | 65 | } 66 | 67 | 68 | 69 | } 70 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/ScriptableObjects/Events/Base/EventListener.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 70ff21e2ceed3784884f6e09975d2a5e 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/ScriptableObjects/Events/EventChannels.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 006125e5c6e58df43b061b31f6118da2 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/ScriptableObjects/Events/EventChannels/EventChannelFloat.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using Tolian.ScriptableSystem; 4 | using UnityEngine; 5 | 6 | [CreateAssetMenu(fileName = "EventChannelFloat", menuName = "TolianGames/Event/EventChannelFloat")] 7 | public class EventChannelFloat : EventChannel 8 | { 9 | 10 | } 11 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/ScriptableObjects/Events/EventChannels/EventChannelFloat.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2e6600dd5f1134f4bbf74b89e4963990 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/ScriptableObjects/Events/EventChannels/EventChannelGameObject.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using Tolian.ScriptableSystem; 4 | using UnityEngine; 5 | 6 | [CreateAssetMenu(fileName = "EventChannelGameObject", menuName = "TolianGames/Event/EventChannelGameObject")] 7 | public class EventChannelGameObject : EventChannel 8 | { 9 | 10 | } 11 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/ScriptableObjects/Events/EventChannels/EventChannelGameObject.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 485dfae21a345f2418f4ef9ec00a04b9 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/ScriptableObjects/Events/EventChannels/EventChannelGameState.cs: -------------------------------------------------------------------------------- 1 | using Tolian.Runtime.Core.Managers.GameSystem; 2 | using Tolian.ScriptableSystem; 3 | using UnityEngine; 4 | 5 | [CreateAssetMenu(fileName = "EventChannelGameState", menuName = "TolianGames/Event/EventChannelGameState")] 6 | public class EventChannelGameState : EventChannel 7 | { 8 | 9 | } 10 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/ScriptableObjects/Events/EventChannels/EventChannelGameState.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 03e622cf75ec2f9429d50afcec8430ac 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/ScriptableObjects/Events/EventChannels/EventChannelInt.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using Tolian.ScriptableSystem; 4 | using UnityEngine; 5 | 6 | [CreateAssetMenu(fileName = "EventChannelInt", menuName = "TolianGames/Event/EventChannelInt")] 7 | public class EventChannelInt : EventChannel 8 | { 9 | 10 | } 11 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/ScriptableObjects/Events/EventChannels/EventChannelInt.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ed8b25bceddfdb1419d5d887734a9751 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/ScriptableObjects/Events/EventChannels/EventChannelVector3.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using Tolian.ScriptableSystem; 4 | using UnityEngine; 5 | 6 | [CreateAssetMenu(fileName = "EventChannelVector3", menuName = "TolianGames/Event/EventChannelVector3")] 7 | public class EventChannelVector3 : EventChannel 8 | { 9 | 10 | } 11 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/ScriptableObjects/Events/EventChannels/EventChannelVector3.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d6f084717de1f064aa6cf0e999f1e923 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/ScriptableObjects/Events/EventChannels/EventChannelVoid.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using Tolian.ScriptableSystem; 4 | using Tolian.Structs.SOSystem; 5 | using UnityEngine; 6 | 7 | [CreateAssetMenu(fileName = "EventChannelVoid", menuName = "TolianGames/Event/EventChannelVoid")] 8 | public class EventChannelVoid : EventChannel 9 | { 10 | 11 | } 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/ScriptableObjects/Events/EventChannels/EventChannelVoid.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c0efdea41f1aac047b9c445583fedaee 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/ScriptableObjects/Events/EventListeners.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1336d8fb5b05409429d57591e76f37d9 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/ScriptableObjects/Events/EventListeners/EventListenerFloat.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using Tolian.ScriptableSystem; 4 | using UnityEngine; 5 | 6 | public class EventListenerFloat : EventListener 7 | { 8 | 9 | } 10 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/ScriptableObjects/Events/EventListeners/EventListenerFloat.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b4a6311809576ab46b682230d60e5e17 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/ScriptableObjects/Events/EventListeners/EventListenerGameObject.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using Tolian.ScriptableSystem; 4 | using UnityEngine; 5 | 6 | public class EventListenerGameObject : EventListener 7 | { 8 | 9 | } 10 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/ScriptableObjects/Events/EventListeners/EventListenerGameObject.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fb5d5a6881d484a498b70215e62442c4 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/ScriptableObjects/Events/EventListeners/EventListenerGameState.cs: -------------------------------------------------------------------------------- 1 | using Tolian.Runtime.Core.Managers.GameSystem; 2 | using Tolian.ScriptableSystem; 3 | using UnityEngine; 4 | 5 | public class EventListenerGameState : EventListener 6 | { 7 | 8 | } 9 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/ScriptableObjects/Events/EventListeners/EventListenerGameState.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cb7d2cb111472594a9c0007eeca71aea 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/ScriptableObjects/Events/EventListeners/EventListenerInt.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using Tolian.ScriptableSystem; 4 | using UnityEngine; 5 | 6 | public class EventListenerInt : EventListener 7 | { 8 | 9 | } 10 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/ScriptableObjects/Events/EventListeners/EventListenerInt.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2d0a4304f911108429cebbd5652ab09b 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/ScriptableObjects/Events/EventListeners/EventListenerVector3.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using Tolian.ScriptableSystem; 4 | using UnityEngine; 5 | 6 | public class EventListenerVector3 : EventListener 7 | { 8 | 9 | } 10 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/ScriptableObjects/Events/EventListeners/EventListenerVector3.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3f5500db69b682d41b925866f3c81bea 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/ScriptableObjects/Events/EventListeners/EventListenerVoid.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using Tolian.ScriptableSystem; 4 | using Tolian.Structs.SOSystem; 5 | using UnityEngine; 6 | 7 | public class EventListenerVoid : EventListener 8 | { 9 | 10 | } 11 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/ScriptableObjects/Events/EventListeners/EventListenerVoid.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3637706614be39548a355a4c57f32ea5 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/ScriptableObjects/Structs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 079a2246a6991d54a9c1b854cea374d1 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/ScriptableObjects/Structs/Void.cs: -------------------------------------------------------------------------------- 1 | namespace Tolian.Structs.SOSystem 2 | { 3 | [System.Serializable] 4 | public struct Void 5 | { 6 | 7 | } 8 | } 9 | 10 | 11 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/ScriptableObjects/Structs/Void.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6eb5af7c6c7872f4caec0e2a40a2a906 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Ui.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a7be5024b30dd374990629915510148f 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Ui/ControllerCanvasButton.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e2f10038ef0330a4b80a120bdd5a1e67 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Ui/ControllerCanvasButton/Base.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0ba1364e5b85a3c41b4e862e5aaf08e4 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Ui/ControllerCanvasButton/Base/ControllerCanvasButtons.cs: -------------------------------------------------------------------------------- 1 | 2 | using UnityEngine; 3 | 4 | namespace Tolian.Runtime.Core.UiSystem 5 | { 6 | public class ControllerCanvasButtons : MonoBehaviour 7 | { 8 | 9 | } 10 | } 11 | 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Ui/ControllerCanvasButton/Base/ControllerCanvasButtons.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 61dd694544487d3498a9487fa80e53f7 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Ui/ControllerCanvasButton/ControllerUiButtonFail.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using DG.Tweening; 4 | using Tolian.Runtime.Core.Managers; 5 | using Tolian.Runtime.Core.ScriptableObjects.Data; 6 | using Tolian.Runtime.Systems.SoundDomain; 7 | using Tolian.Runtime.Systems.UiDomain; 8 | using UnityEngine; 9 | 10 | namespace Tolian.Runtime.Core.UiSystem 11 | { 12 | public class ControllerUiButtonFail : ControllerCanvasButtons 13 | { 14 | [SerializeField] private SoundsUiDataSO _soundsUiDataSo; 15 | private SoundSystem _soundSystem; 16 | 17 | private void Start() 18 | { 19 | _soundSystem = ManagerServiceLocator.Instance.ServiceLocatorSystem.GetService().SoundSystem; 20 | } 21 | 22 | public void ReplayButtonFunction() 23 | { 24 | //------------------SUPERSONIC WISDOM SDK--------------- 25 | // ManagerServiceLocator.Instance.ServiceLocatorSystem.GetService().NotifyLevelFailed(); 26 | 27 | _soundSystem.PlaySoundAtPoint(Vector3.zero, _soundsUiDataSo.ButtonSelectSFX, 1); 28 | DOVirtual.DelayedCall(0.5f, () => ManagerServiceLocator.Instance.ServiceLocatorSystem.GetService().OpenTheSameLevel(true)); 29 | 30 | } 31 | } 32 | 33 | } 34 | 35 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Ui/ControllerCanvasButton/ControllerUiButtonFail.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bc73efeef93a0e0449822f57513e2ac4 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Ui/ControllerCanvasButton/ControllerUiButtonInGameButtons.cs: -------------------------------------------------------------------------------- 1 | using Tolian.Runtime.Core.Managers; 2 | using Tolian.Runtime.Core.Managers.GameSystem; 3 | using Tolian.Runtime.Core.ScriptableObjects.Data; 4 | using Tolian.Runtime.Systems.SoundDomain; 5 | using Tolian.Runtime.Systems.UiDomain; 6 | using UnityEngine; 7 | 8 | namespace Tolian.Runtime.Core.UiSystem 9 | { 10 | public class ControllerUiButtonInGameButtons : ControllerCanvasButtons 11 | { 12 | [SerializeField] private SoundsUiDataSO _soundsUiDataSo; 13 | private SoundSystem _soundSystem; 14 | 15 | private void Start() 16 | { 17 | _soundSystem = ManagerServiceLocator.Instance.ServiceLocatorSystem.GetService().SoundSystem; 18 | } 19 | public void SettingsButtonFunction() 20 | { 21 | ManagerServiceLocator.Instance.ServiceLocatorSystem.GetService().ControllerUiCanvases.UiCanvasSystem.SetActivenessOfSpecificCanvas(CanvasType.CanvasSettings,true); 22 | 23 | var managerGame = ManagerServiceLocator.Instance.ServiceLocatorSystem.GetService(); 24 | managerGame.SetCurrentGameStateType(GameStateType.Menu); 25 | 26 | _soundSystem.PlaySoundAtPoint(Vector3.zero, _soundsUiDataSo.PopUpSFX, 1); 27 | } 28 | 29 | public void ShopButtonFunction() 30 | { 31 | ManagerServiceLocator.Instance.ServiceLocatorSystem.GetService().ControllerUiCanvases.UiCanvasSystem.SetActivenessOfAllCanvases(false); 32 | ManagerServiceLocator.Instance.ServiceLocatorSystem.GetService().ControllerUiCanvases.UiCanvasSystem.SetActivenessOfSpecificCanvas(CanvasType.CanvasShop,true); 33 | 34 | var managerGame = ManagerServiceLocator.Instance.ServiceLocatorSystem.GetService(); 35 | managerGame.SetCurrentGameStateType(GameStateType.Menu); 36 | 37 | } 38 | } 39 | } 40 | 41 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Ui/ControllerCanvasButton/ControllerUiButtonInGameButtons.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 05d31b9f233aece4c9094908a98acde5 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Ui/ControllerCanvasButton/ControllerUiButtonSettings.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d7a2009a2f06aee4ca2ccb7467e2fbf5 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Ui/ControllerCanvasButton/ControllerUiButtonShop.cs: -------------------------------------------------------------------------------- 1 | using Tolian.Runtime.Core.Managers; 2 | using Tolian.Runtime.Core.Managers.GameSystem; 3 | using Tolian.Runtime.Systems.UiDomain; 4 | using UnityEngine; 5 | 6 | namespace Tolian.Runtime.Core.UiSystem 7 | { 8 | public class ControllerUiButtonShop : ControllerCanvasButtons 9 | { 10 | private CanvasUi _canvasUi; 11 | private ControllerOpenCloseShopCanvas _controllerOpenCloseShopCanvas; 12 | 13 | private void Awake() 14 | { 15 | _canvasUi = GetComponent(); 16 | _controllerOpenCloseShopCanvas = GetComponent(); 17 | } 18 | 19 | public void ExitButtonFunction() 20 | { 21 | if (_controllerOpenCloseShopCanvas) 22 | { 23 | _controllerOpenCloseShopCanvas.CloseUiCanvas(_canvasUi.CanvasUiParts); 24 | ManagerServiceLocator.Instance.ServiceLocatorSystem.GetService().ControllerUiCanvases.SetCanvasesAccordingToGameState(GameStateType.LevelOpened); 25 | 26 | var managerGame = ManagerServiceLocator.Instance.ServiceLocatorSystem.GetService(); 27 | managerGame.SetCurrentGameStateType(GameStateType.LevelOpened); 28 | } 29 | } 30 | } 31 | } 32 | 33 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Ui/ControllerCanvasButton/ControllerUiButtonShop.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d94d02cfa5852044ba8e3937a5f8c390 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Ui/ControllerCanvasButton/ControllerUiButtonSuccess.cs: -------------------------------------------------------------------------------- 1 | using DG.Tweening; 2 | using Tolian.Runtime.Core.Managers; 3 | using Tolian.Runtime.Core.ScriptableObjects.Data; 4 | using Tolian.Runtime.Systems.SoundDomain; 5 | using UnityEngine; 6 | 7 | namespace Tolian.Runtime.Core.UiSystem 8 | { 9 | public class ControllerUiButtonSuccess : ControllerCanvasButtons 10 | { 11 | [SerializeField] private SoundsUiDataSO _soundsUiDataSo; 12 | private SoundSystem _soundSystem; 13 | 14 | private void Start() 15 | { 16 | _soundSystem = ManagerServiceLocator.Instance.ServiceLocatorSystem.GetService().SoundSystem; 17 | } 18 | 19 | public void NextButtonFunction() 20 | { 21 | //------------------SUPERSONIC WISDOM SDK--------------- 22 | // ManagerServiceLocator.Instance.ServiceLocatorSystem.GetService().NotifyLevelCompleted(); 23 | 24 | _soundSystem.PlaySoundAtPoint(Vector3.zero, _soundsUiDataSo.ButtonSelectSFX, 1); 25 | DOVirtual.DelayedCall(0.5f, () => ManagerServiceLocator.Instance.ServiceLocatorSystem.GetService().OpenNextLevelScene(true)); 26 | 27 | } 28 | } 29 | } 30 | 31 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Ui/ControllerCanvasButton/ControllerUiButtonSuccess.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cf51a75e58f1acb4baf907ac5ffbdda1 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Ui/ControllerCanvasOpenClose.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3bdcf017c96285843b0d1c05e064428f 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Ui/ControllerCanvasOpenClose/Base.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8a872be26b26048478ff57bbdbd5a225 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Ui/ControllerCanvasOpenClose/Base/ControllerCanvasOpenCloseBase.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using Tolian.Runtime.Core.ScriptableObjects.Data; 4 | using Tolian.Runtime.Systems.UiDomain; 5 | using UnityEngine; 6 | 7 | namespace Tolian.Runtime.Core.UiSystem 8 | { 9 | /// 10 | /// This class handles how the canvas should be opened and closed. Each canvas can have a unique behaviour by overriding functions. 11 | /// 12 | public class ControllerCanvasOpenCloseBase : MonoBehaviour, IOpenCloseUiCanvas 13 | { 14 | [SerializeField] protected SoundsUiDataSO _soundsUiDataSo; 15 | [SerializeField] protected float _durationBetweenCanvasUiParts = 0.15f; 16 | public virtual void OpenUiCanvas(List canvasUiParts) 17 | { 18 | 19 | } 20 | 21 | public virtual void CloseUiCanvas(List canvasUiParts) 22 | { 23 | 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Ui/ControllerCanvasOpenClose/Base/ControllerCanvasOpenCloseBase.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 22b3d82e7020de84fbf1872a60ba90ff 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Ui/ControllerCanvasOpenClose/ControllerOpenCloseBaseDamageCanvas.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using Tolian.Runtime.Systems.UiDomain; 4 | 5 | namespace Tolian.Runtime.Core.UiSystem 6 | { 7 | public class ControllerOpenCloseBaseDamageCanvas : ControllerCanvasOpenCloseBase 8 | { 9 | public override void OpenUiCanvas(List canvasUiParts) 10 | { 11 | 12 | } 13 | 14 | public override void CloseUiCanvas(List canvasUiParts) 15 | { 16 | gameObject.SetActive(false); 17 | } 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Ui/ControllerCanvasOpenClose/ControllerOpenCloseBaseDamageCanvas.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5779876944b586e4c89baccad73f4d3b 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Ui/ControllerCanvasOpenClose/ControllerOpenCloseBaseSuccessCanvas.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 761e3db4150e0a3439c9d9fe2f75495c 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Ui/ControllerCanvasOpenClose/ControllerOpenCloseBaseUiPointerCanvas.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using Tolian.Runtime.Systems.UiDomain; 4 | 5 | 6 | namespace Tolian.Runtime.Core.UiSystem 7 | { 8 | public class ControllerOpenCloseBaseUiPointerCanvas : ControllerCanvasOpenCloseBase 9 | { 10 | public override void OpenUiCanvas(List canvasUiParts) 11 | { 12 | 13 | } 14 | 15 | public override void CloseUiCanvas(List canvasUiParts) 16 | { 17 | gameObject.SetActive(false); 18 | } 19 | } 20 | } 21 | 22 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Ui/ControllerCanvasOpenClose/ControllerOpenCloseBaseUiPointerCanvas.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f6d513394a9521545bb74153d5861f67 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Ui/ControllerCanvasOpenClose/ControllerOpenCloseFailCanvas.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using DG.Tweening; 4 | using Tolian.Runtime.Systems.UiDomain; 5 | using UnityEngine; 6 | 7 | namespace Tolian.Runtime.Core.UiSystem 8 | { 9 | public class ControllerOpenCloseFailCanvas : ControllerCanvasOpenCloseBase 10 | { 11 | public void OpenUiCanvas(List canvasUiParts) 12 | { 13 | for (int i = 0; i < canvasUiParts.Count; i++) 14 | { 15 | CanvasUiPart canvasUiPart = canvasUiParts[i]; 16 | var particleSystems = canvasUiPart.GetComponentsInChildren(); 17 | int no = i; 18 | canvasUiPart.SetScale(Vector3.zero); 19 | 20 | DOVirtual.DelayedCall(no * _durationBetweenCanvasUiParts, () => 21 | { 22 | canvasUiPart.SetScale(Vector3.one, 0.3f, () => 23 | { 24 | if (particleSystems.Length > 0) 25 | { 26 | for (int j = 0; j < particleSystems.Length; j++) 27 | { 28 | particleSystems[j].Play(); 29 | } 30 | } 31 | }); 32 | }); 33 | 34 | } 35 | } 36 | 37 | public void CloseUiCanvas(List canvasUiParts) 38 | { 39 | for (int i = 0; i < canvasUiParts.Count; i++) 40 | { 41 | CanvasUiPart canvasUiPart = canvasUiParts[i]; 42 | int no = i; 43 | 44 | DOVirtual.DelayedCall(no * _durationBetweenCanvasUiParts, () => 45 | { 46 | canvasUiPart.SetScale(Vector3.zero, 0.3f); 47 | if (no == canvasUiParts.Count - 1) 48 | { 49 | gameObject.SetActive(false); 50 | } 51 | }); 52 | 53 | } 54 | 55 | } 56 | } 57 | } 58 | 59 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Ui/ControllerCanvasOpenClose/ControllerOpenCloseFailCanvas.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 966277d0fa4881d48a395140c21088a2 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Ui/ControllerCanvasOpenClose/ControllerOpenCloseInGameButtonsCanvas.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using DG.Tweening; 4 | using Tolian.Runtime.Systems.UiDomain; 5 | using UnityEngine; 6 | 7 | namespace Tolian.Runtime.Core.UiSystem 8 | { 9 | public class ControllerOpenCloseInGameButtonsCanvas : ControllerCanvasOpenCloseBase 10 | { 11 | public void OpenUiCanvas(List canvasUiParts) 12 | { 13 | for (int i = 0; i < canvasUiParts.Count; i++) 14 | { 15 | CanvasUiPart canvasUiPart = canvasUiParts[i]; 16 | int no = i; 17 | canvasUiPart.SetScale(Vector3.zero); 18 | 19 | DOVirtual.DelayedCall(no * _durationBetweenCanvasUiParts, () => 20 | { 21 | canvasUiPart.SetScale(Vector3.one, 0.3f); 22 | }); 23 | 24 | } 25 | } 26 | 27 | public void CloseUiCanvas(List canvasUiParts) 28 | { 29 | for (int i = 0; i < canvasUiParts.Count; i++) 30 | { 31 | CanvasUiPart canvasUiPart = canvasUiParts[i]; 32 | int no = i; 33 | 34 | DOVirtual.DelayedCall(no * _durationBetweenCanvasUiParts, () => 35 | { 36 | canvasUiPart.SetScale(Vector3.zero, 0.3f); 37 | if (no == canvasUiParts.Count - 1) 38 | { 39 | gameObject.SetActive(false); 40 | } 41 | }); 42 | 43 | } 44 | } 45 | } 46 | } 47 | 48 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Ui/ControllerCanvasOpenClose/ControllerOpenCloseInGameButtonsCanvas.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5f057fa2c7f01e64aae9187ce4e370ce 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Ui/ControllerCanvasOpenClose/ControllerOpenCloseJoystickCanvas.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using Tolian.Runtime.Systems.UiDomain; 4 | using UnityEngine; 5 | 6 | namespace Tolian.Runtime.Core.UiSystem 7 | { 8 | public class ControllerOpenCloseJoystickCanvas : ControllerCanvasOpenCloseBase 9 | { 10 | public void OpenUiCanvas(List canvasUiParts) 11 | { 12 | 13 | } 14 | 15 | public void CloseUiCanvas(List canvasUiParts) 16 | { 17 | gameObject.SetActive(false); 18 | } 19 | } 20 | } 21 | 22 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Ui/ControllerCanvasOpenClose/ControllerOpenCloseJoystickCanvas.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6e861ec561b83804e90d983562d1a9f8 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Ui/ControllerCanvasOpenClose/ControllerOpenCloseLevelCanvas.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using DG.Tweening; 4 | using Tolian.Runtime.Systems.UiDomain; 5 | using UnityEngine; 6 | 7 | namespace Tolian.Runtime.Core.UiSystem 8 | { 9 | public class ControllerOpenCloseLevelCanvas : ControllerCanvasOpenCloseBase 10 | { 11 | public override void OpenUiCanvas(List canvasUiParts) 12 | { 13 | for (int i = 0; i < canvasUiParts.Count; i++) 14 | { 15 | CanvasUiPart canvasUiPart = canvasUiParts[i]; 16 | int no = i; 17 | canvasUiPart.SetScale(Vector3.zero); 18 | 19 | DOVirtual.DelayedCall(no * _durationBetweenCanvasUiParts, () => 20 | { 21 | canvasUiPart.SetScale(Vector3.one, 0.3f); 22 | }); 23 | 24 | } 25 | } 26 | 27 | public override void CloseUiCanvas(List canvasUiParts) 28 | { 29 | for (int i = 0; i < canvasUiParts.Count; i++) 30 | { 31 | CanvasUiPart canvasUiPart = canvasUiParts[i]; 32 | int no = i; 33 | 34 | DOVirtual.DelayedCall(no * _durationBetweenCanvasUiParts, () => 35 | { 36 | canvasUiPart.SetScale(Vector3.zero, 0.3f); 37 | if (no == canvasUiParts.Count - 1) 38 | { 39 | gameObject.SetActive(false); 40 | } 41 | }); 42 | 43 | } 44 | } 45 | } 46 | } 47 | 48 | 49 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Ui/ControllerCanvasOpenClose/ControllerOpenCloseLevelCanvas.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: dc803f4d613d1e0469ad146f4e22acc4 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Ui/ControllerCanvasOpenClose/ControllerOpenCloseLoadingCanvas.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using Tolian.Runtime.Systems.UiDomain; 4 | using UnityEngine; 5 | 6 | namespace Tolian.Runtime.Core.UiSystem 7 | { 8 | public class ControllerOpenCloseLoadingCanvas : ControllerCanvasOpenCloseBase 9 | { 10 | public override void OpenUiCanvas(List canvasUiParts) 11 | { 12 | 13 | } 14 | 15 | public override void CloseUiCanvas(List canvasUiParts) 16 | { 17 | gameObject.SetActive(false); 18 | } 19 | } 20 | 21 | } 22 | 23 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Ui/ControllerCanvasOpenClose/ControllerOpenCloseLoadingCanvas.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5d4abf13d8166af4ab7830a558d050aa 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Ui/ControllerCanvasOpenClose/ControllerOpenCloseMoneyCanvas.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using DG.Tweening; 4 | using Tolian.Runtime.Systems.UiDomain; 5 | using UnityEngine; 6 | 7 | namespace Tolian.Runtime.Core.UiSystem 8 | { 9 | public class ControllerOpenCloseMoneyCanvas : ControllerCanvasOpenCloseBase 10 | { 11 | public override void OpenUiCanvas(List canvasUiParts) 12 | { 13 | for (int i = 0; i < canvasUiParts.Count; i++) 14 | { 15 | CanvasUiPart canvasUiPart = canvasUiParts[i]; 16 | int no = i; 17 | canvasUiPart.SetScale(Vector3.zero); 18 | 19 | DOVirtual.DelayedCall(no * _durationBetweenCanvasUiParts, () => 20 | { 21 | canvasUiPart.SetScale(Vector3.one, 0.3f); 22 | }); 23 | 24 | } 25 | } 26 | 27 | public override void CloseUiCanvas(List canvasUiParts) 28 | { 29 | for (int i = 0; i < canvasUiParts.Count; i++) 30 | { 31 | CanvasUiPart canvasUiPart = canvasUiParts[i]; 32 | int no = i; 33 | 34 | DOVirtual.DelayedCall(no * _durationBetweenCanvasUiParts, () => 35 | { 36 | canvasUiPart.SetScale(Vector3.zero, 0.3f); 37 | if (no == canvasUiParts.Count - 1) 38 | { 39 | gameObject.SetActive(false); 40 | } 41 | }); 42 | 43 | } 44 | } 45 | } 46 | } 47 | 48 | 49 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Ui/ControllerCanvasOpenClose/ControllerOpenCloseMoneyCanvas.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a96a23fbf065587429729650c9ea447b 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Ui/ControllerCanvasOpenClose/ControllerOpenCloseRankCanvas.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using DG.Tweening; 4 | using Tolian.Runtime.Systems.UiDomain; 5 | using UnityEngine; 6 | 7 | 8 | namespace Tolian.Runtime.Core.UiSystem 9 | { 10 | public class ControllerOpenCloseRankCanvas : ControllerCanvasOpenCloseBase 11 | { 12 | public override void OpenUiCanvas(List canvasUiParts) 13 | { 14 | for (int i = 0; i < canvasUiParts.Count; i++) 15 | { 16 | CanvasUiPart canvasUiPart = canvasUiParts[i]; 17 | var particleSystems = canvasUiPart.GetComponentsInChildren(); 18 | int no = i; 19 | canvasUiPart.SetScale(Vector3.zero); 20 | 21 | DOVirtual.DelayedCall(no * _durationBetweenCanvasUiParts, () => 22 | { 23 | canvasUiPart.SetScale(Vector3.one, 0.3f, () => 24 | { 25 | if (particleSystems.Length > 0) 26 | { 27 | for (int j = 0; j < particleSystems.Length; j++) 28 | { 29 | particleSystems[j].Play(); 30 | } 31 | } 32 | }); 33 | }); 34 | 35 | } 36 | } 37 | 38 | public override void CloseUiCanvas(List canvasUiParts) 39 | { 40 | for (int i = 0; i < canvasUiParts.Count; i++) 41 | { 42 | CanvasUiPart canvasUiPart = canvasUiParts[i]; 43 | int no = i; 44 | 45 | DOVirtual.DelayedCall(no * _durationBetweenCanvasUiParts, () => 46 | { 47 | canvasUiPart.SetScale(Vector3.zero, 0.3f); 48 | if (no == canvasUiParts.Count - 1) 49 | { 50 | gameObject.SetActive(false); 51 | } 52 | }); 53 | 54 | } 55 | } 56 | } 57 | } 58 | 59 | 60 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Ui/ControllerCanvasOpenClose/ControllerOpenCloseRankCanvas.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 481179d20d0baf64eac508c179ca4228 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Ui/ControllerCanvasOpenClose/ControllerOpenCloseSettingCanvas.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4df6e056dfa2f994a89be3800f1a6f2d 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Ui/ControllerCanvasOpenClose/ControllerOpenCloseShopCanvas.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using DG.Tweening; 4 | using Tolian.Runtime.Systems.UiDomain; 5 | using UnityEngine; 6 | 7 | namespace Tolian.Runtime.Core.UiSystem 8 | { 9 | public class ControllerOpenCloseShopCanvas : ControllerCanvasOpenCloseBase 10 | { 11 | public override void OpenUiCanvas(List canvasUiParts) 12 | { 13 | for (int i = 0; i < canvasUiParts.Count; i++) 14 | { 15 | CanvasUiPart canvasUiPart = canvasUiParts[i]; 16 | var particleSystems = canvasUiPart.GetComponentsInChildren(); 17 | int no = i; 18 | canvasUiPart.SetScale(Vector3.zero); 19 | 20 | DOVirtual.DelayedCall(no * _durationBetweenCanvasUiParts, () => 21 | { 22 | canvasUiPart.SetScale(Vector3.one, 0.3f, () => 23 | { 24 | if (particleSystems.Length > 0) 25 | { 26 | for (int j = 0; j < particleSystems.Length; j++) 27 | { 28 | particleSystems[j].Play(); 29 | } 30 | } 31 | }); 32 | }); 33 | 34 | } 35 | } 36 | 37 | public override void CloseUiCanvas(List canvasUiParts) 38 | { 39 | for (int i = 0; i < canvasUiParts.Count; i++) 40 | { 41 | CanvasUiPart canvasUiPart = canvasUiParts[i]; 42 | int no = i; 43 | 44 | DOVirtual.DelayedCall(no * _durationBetweenCanvasUiParts, () => 45 | { 46 | canvasUiPart.SetScale(Vector3.zero, 0.3f); 47 | if (no == canvasUiParts.Count - 1) 48 | { 49 | gameObject.SetActive(false); 50 | } 51 | }); 52 | 53 | } 54 | } 55 | } 56 | } 57 | 58 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Ui/ControllerCanvasOpenClose/ControllerOpenCloseShopCanvas.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4398d82549c7f1044bb19d9a973e9cc6 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Ui/ControllerCanvasOpenClose/ControllerOpenCloseTutorialCanvas.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using Tolian.Runtime.Systems.UiDomain; 4 | 5 | 6 | namespace Tolian.Runtime.Core.UiSystem 7 | { 8 | public class ControllerOpenCloseTutorialCanvas : ControllerCanvasOpenCloseBase 9 | { 10 | public override void OpenUiCanvas(List canvasUiParts) 11 | { 12 | 13 | } 14 | 15 | public override void CloseUiCanvas(List canvasUiParts) 16 | { 17 | gameObject.SetActive(false); 18 | } 19 | } 20 | 21 | } 22 | 23 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Ui/ControllerCanvasOpenClose/ControllerOpenCloseTutorialCanvas.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ee71f46f0604cda47b20cac6031194f6 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Ui/UIParticleSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 022f88edfdfa44b65afcefde3c9d854e 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Ui/UiCoin.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using Tolian.Runtime.Systems.ObjectPoolDomain; 4 | using UnityEngine; 5 | 6 | namespace Tolian.Runtime.Core.UiSystem 7 | { 8 | public class UiCoin : BaseObjectForObjectPoolSystem 9 | { 10 | public override void ResetObject() 11 | { 12 | 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Ui/UiCoin.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0c0916a1e1e707649899b53eced435e8 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Ui/UiPointer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a032e8f6bf7229d49a0e8c15725002d8 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Ui/UiRank.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using TMPro; 4 | using Tolian.Runtime.Core.ScriptableObjects.Data; 5 | using UnityEngine; 6 | using UnityEngine.UI; 7 | 8 | namespace Tolian.Runtime.Core.UiSystem 9 | { 10 | public class UiRank : MonoBehaviour 11 | { 12 | [SerializeField] private Image _backgroundImage; 13 | [SerializeField] private Sprite _playerBackgroundSprite, _otherBackgroundSprite; 14 | 15 | [SerializeField] private CharacterIconsSO _characterIconsSo; 16 | [SerializeField] private TMP_Text _rank; 17 | [SerializeField] private TMP_Text _name; 18 | [SerializeField] private TMP_Text _score; 19 | [SerializeField] private Image _iconImage; 20 | 21 | public int Score { get; private set; } 22 | public int Rank { get; private set; } 23 | 24 | public void SetRank(int rank) 25 | { 26 | Rank = rank; 27 | _rank.text = rank.ToString(); 28 | } 29 | 30 | public void SetName(string name) 31 | { 32 | _name.text = name; 33 | } 34 | 35 | public void SetScore(int score) 36 | { 37 | Score = score; 38 | _score.text = score.ToString(); 39 | } 40 | 41 | public void SetIconSprite(Sprite sprite) 42 | { 43 | _iconImage.sprite = sprite; 44 | } 45 | 46 | 47 | 48 | public Sprite GetRandomCharacterSpite() 49 | { 50 | return _characterIconsSo.CharacterIcons[Random.Range(0, _characterIconsSo.CharacterIcons.Count)]; 51 | } 52 | 53 | public Sprite GetCharacterSpriteWithNo(int listNo) 54 | { 55 | if (listNo >= _characterIconsSo.CharacterIcons.Count) 56 | { 57 | return null; 58 | } 59 | 60 | return _characterIconsSo.CharacterIcons[listNo]; 61 | } 62 | 63 | public void SetBackgroundImage(bool isPlayer) 64 | { 65 | if (isPlayer) 66 | { 67 | _backgroundImage.sprite = _playerBackgroundSprite; 68 | 69 | } 70 | else if (!isPlayer) 71 | { 72 | _backgroundImage.sprite = _otherBackgroundSprite; 73 | } 74 | } 75 | } 76 | } 77 | 78 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Ui/UiRank.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: aba77c5fd3a865148b68a4eabf53d80c 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Ui/UiStar.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | using UnityEngine; 6 | 7 | namespace Tolian.Runtime.Core.UiSystem 8 | { 9 | public class UiStar : MonoBehaviour 10 | { 11 | public List ParticleSystems; 12 | 13 | private void Awake() 14 | { 15 | ParticleSystems = GetComponentsInChildren(true).ToList(); 16 | } 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Ui/UiStar.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 49554f54e1256074e9b7734cb013c9f1 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Ui/UiToggle.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | namespace Tolian.Runtime.Core.UiSystem 6 | { 7 | public class UiToggle : MonoBehaviour 8 | { 9 | [SerializeField] private GameObject _openVisual, _closeVisual; 10 | 11 | public void SetUiToggleVisual(bool isOpen) 12 | { 13 | _openVisual.SetActive(isOpen); 14 | _closeVisual.SetActive(!isOpen); 15 | } 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Ui/UiToggle.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1d92085863f20e64ea0c96923953435f 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Ui/UiTutorial.cs: -------------------------------------------------------------------------------- 1 | using Tolian.Runtime.Systems.UiDomain; 2 | using UnityEngine; 3 | 4 | namespace Tolian.Runtime.Core.UiSystem 5 | { 6 | public class UiTutorial : MonoBehaviour 7 | { 8 | [field: SerializeField] public UiTutorialType UiTutorialType; 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Core/Ui/UiTutorial.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7033ec032e30f7449ab10145e092a323 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c5a0fc2a6d7db40448da06fa73bf3b56 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/AddressablesSystem.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1d47bd724e0ac48419aefb56008d3daf 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/AddressablesSystem/AddressablesSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e289c2fe193f90f45a9a09a3f8c6bb1c 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/CinemachineSystem.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bf280ca6f1bdbfd4c918f65dfed1954f 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/CinemachineSystem/CinemachineSystem.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using Cinemachine; 4 | using UnityEngine; 5 | 6 | namespace Tolian.Runtime.Systems.CinemachineDomain 7 | { 8 | [RequireComponent(typeof(ControllerCinemachineCameraShake))] 9 | public class CinemachineSystem : MonoBehaviour 10 | { 11 | #region REFERENCES 12 | private Animator _cinemachineAnimator; 13 | public CinemachineStateDrivenCamera CinemachineStateDrivenCamera { get; private set; } 14 | public ControllerCinemachineCameraShake ControllerCinemachineCameraShake { get; private set; } 15 | #endregion 16 | 17 | protected void Awake() 18 | { 19 | ControllerCinemachineCameraShake = GetComponent(); 20 | CinemachineStateDrivenCamera = GetComponentInChildren(); 21 | _cinemachineAnimator = GetComponentInChildren(); 22 | } 23 | 24 | /// 25 | /// In order to change the active virtual camera 26 | /// 27 | /// 28 | public void SetActiveVcamByUsingAnimator(string targetAnimationParameter) 29 | { 30 | _cinemachineAnimator.SetTrigger(targetAnimationParameter); 31 | } 32 | 33 | public CinemachineVirtualCamera GetActiveVCAM() 34 | { 35 | return (CinemachineVirtualCamera)CinemachineStateDrivenCamera.LiveChild; 36 | } 37 | } 38 | 39 | } 40 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/CinemachineSystem/CinemachineSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: eef785a3ab3bc584bb71a3c434d8c7db 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/CinemachineSystem/ControllerCinemachineCameraShake.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using Cinemachine; 4 | using UnityEngine; 5 | 6 | namespace Tolian.Runtime.Systems.CinemachineDomain 7 | { 8 | public class ControllerCinemachineCameraShake : MonoBehaviour 9 | { 10 | private float shakeTimer; 11 | private float shakeTimerTotal; 12 | private float startingIntensity; 13 | 14 | public IEnumerator ShakeCamera(CinemachineVirtualCamera targetVirtualCamera, float intensity, float time) 15 | { 16 | CinemachineBasicMultiChannelPerlin cinemachineBasicMultiChannelPerlin = 17 | targetVirtualCamera.GetCinemachineComponent(); 18 | 19 | cinemachineBasicMultiChannelPerlin.m_AmplitudeGain = intensity; 20 | 21 | startingIntensity = intensity; 22 | shakeTimerTotal = time; 23 | shakeTimer = time; 24 | 25 | while (shakeTimer > 0) 26 | { 27 | shakeTimer -= Time.deltaTime; 28 | cinemachineBasicMultiChannelPerlin.m_AmplitudeGain = 29 | Mathf.Lerp(startingIntensity, 0f, 1 - shakeTimer / shakeTimerTotal); 30 | 31 | yield return null; 32 | } 33 | } 34 | 35 | } 36 | 37 | } 38 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/CinemachineSystem/ControllerCinemachineCameraShake.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4e8ad49fb5846bc48827d18de6235c22 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/CinemachineSystem/GhostObjectForCinemachineTarget.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using System.Collections.Generic; 4 | using UnityEngine; 5 | 6 | namespace Tolian.Runtime.Systems.CinemachineDomain 7 | { 8 | public class GhostObjectForCinemachineTarget : MonoBehaviour 9 | { 10 | [SerializeField] private Transform _targetTransform; 11 | private void LateUpdate() 12 | { 13 | if (_targetTransform) 14 | { 15 | transform.position = _targetTransform.transform.position; 16 | } 17 | } 18 | } 19 | } 20 | 21 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/CinemachineSystem/GhostObjectForCinemachineTarget.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b30650210cb52d844aebdcb1195398c7 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/EventSystem.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e6f421e67c285f343bd435ceed94a23a 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/EventSystem/EventSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d08273953f9fca64ca89da1bd70d524d 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/EventSystem/Interfaces.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6db90997e29beae49bccc2cd6577cfc6 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/EventSystem/Interfaces/IEvent.cs: -------------------------------------------------------------------------------- 1 | namespace Tolian.Runtime.Systems.EventDomain 2 | { 3 | public interface IEvent 4 | { 5 | } 6 | 7 | } 8 | 9 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/EventSystem/Interfaces/IEvent.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4216a8a483292f3468362792162a790d 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/EventSystem/TolianEvents.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b7b18155079462d4392307fac4c3f8db 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/EventSystem/TolianEvents/TolianEvents.cs: -------------------------------------------------------------------------------- 1 | using Tolian.Runtime.Core.Managers.GameSystem; 2 | using UnityEngine; 3 | 4 | namespace Tolian.Runtime.Systems.EventDomain 5 | { 6 | public class TolianEvents 7 | { 8 | 9 | } 10 | 11 | //BASE CLASSESS 12 | 13 | public class EventBool : TolianEvent 14 | { 15 | 16 | } 17 | 18 | public class EventFloat : TolianEvent 19 | { 20 | 21 | } 22 | 23 | public class EventGameObject : TolianEvent 24 | { 25 | 26 | } 27 | 28 | public class EventGameState : TolianEvent 29 | { 30 | 31 | } 32 | 33 | public class EventInt : TolianEvent 34 | { 35 | 36 | } 37 | 38 | public class EventVector3 : TolianEvent 39 | { 40 | 41 | } 42 | 43 | //IN ACTION CLASSES 44 | public class OnGameStateChange : EventGameState 45 | { 46 | 47 | } 48 | 49 | 50 | } 51 | 52 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/EventSystem/TolianEvents/TolianEvents.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b5337a9b2ee2de64fbf1f92d3ab7a119 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/InputSystem.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: af7c11e7cf9d1ac448f9e1fb34cbd531 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/InputSystem/Enums.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 20fd7c2e56569f9409c57fe41118ebca 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/InputSystem/Enums/InputType.cs: -------------------------------------------------------------------------------- 1 | namespace Tolian.Runtime.Systems.InputDomain 2 | { 3 | public enum InputType 4 | { 5 | None, 6 | Joystick, 7 | ContinuousDeltaFrame 8 | } 9 | } 10 | 11 | 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/InputSystem/Enums/InputType.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f7368b6775d75b74494ca2adb356ad09 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/InputSystem/Enums/JoystickType.cs: -------------------------------------------------------------------------------- 1 | namespace Tolian.Runtime.Systems.InputDomain 2 | { 3 | public enum JoystickType 4 | { 5 | Static, 6 | Floating, 7 | Dynamic 8 | } 9 | } 10 | 11 | 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/InputSystem/Enums/JoystickType.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 30997dc771b7986438980d5e23fbf6a7 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/InputSystem/InputSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 04a0ffafca046ce4bb3c6ad296a3de90 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/LevelSystem.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b6e141524c7177048bb5630847cb74be 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/LevelSystem/ControllerLevel.cs: -------------------------------------------------------------------------------- 1 | using Tolian.Runtime.Abstract.DesignPatterns.SingletonSystem; 2 | 3 | namespace Tolian.Runtime.Systems.LevelSystem 4 | { 5 | /// 6 | /// This class controls level-based objects. Also, this class contains references of level-based objects. 7 | /// 8 | public class ControllerLevel : Singleton 9 | { 10 | 11 | } 12 | } 13 | 14 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/LevelSystem/ControllerLevel.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3ccf59b647fe58f43a89e7c7d5b92a65 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/ObjectPoolSystem.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d1a074571d7177e42bb0863301ae6a5d 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/ObjectPoolSystem/Enum.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9d2bcc4c2172cd14096b07f5651ab829 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/ObjectPoolSystem/Enum/ObjectPoolType.cs: -------------------------------------------------------------------------------- 1 | namespace Tolian.Runtime.Systems.ObjectPoolDomain 2 | { 3 | /// 4 | /// This enum can be extended according to needs of object pools. Each enum value can be used to create a pool in ObjectPoolSystem which can be accessed via ManagerObjectPool 5 | /// 6 | public enum ObjectPoolType 7 | { 8 | DefaultObject = 0, 9 | UiCoin 10 | } 11 | } 12 | 13 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/ObjectPoolSystem/Enum/ObjectPoolType.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e05172594c5c3214898192d209c05d75 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/ObjectPoolSystem/Interfaces.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1b938fb059a007d4cbc643ceb1684745 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/ObjectPoolSystem/Interfaces/BaseObjectForObjectPoolSystem.cs: -------------------------------------------------------------------------------- 1 | using Tolian.Runtime.Core.Managers; 2 | using Tolian.Runtime.Core.Managers.GameSystem; 3 | using Tolian.Runtime.Systems.EventDomain; 4 | using UnityEngine; 5 | 6 | namespace Tolian.Runtime.Systems.ObjectPoolDomain 7 | { 8 | public abstract class BaseObjectForObjectPoolSystem : MonoBehaviour 9 | { 10 | #region REFERENCES 11 | public ObjectPoolType ObjectPoolType { get; protected set; } 12 | protected ManagerEvent _managerEvent; 13 | protected ManagerObjectPool _managerObjectPool; 14 | #endregion 15 | 16 | protected virtual void OnEnable() 17 | { 18 | _managerEvent = ManagerServiceLocator.Instance.ServiceLocatorSystem.GetService(); 19 | _managerObjectPool = ManagerServiceLocator.Instance.ServiceLocatorSystem.GetService(); 20 | 21 | _managerEvent.EventSystem.GetEvent().AddListener(DespawnObject); 22 | } 23 | 24 | 25 | protected virtual void OnDisable() 26 | { 27 | _managerEvent.EventSystem.GetEvent().RemoveListener(DespawnObject); 28 | } 29 | 30 | private void DespawnObject(GameStateType gameStateType) 31 | { 32 | if (gameStateType == GameStateType.LevelOpened) 33 | { 34 | if (gameObject.activeInHierarchy) 35 | { 36 | _managerObjectPool.ObjectPoolSystem.Despawn(ObjectPoolType, this); 37 | } 38 | } 39 | } 40 | public abstract void ResetObject(); 41 | 42 | public void SetObjectPoolType(ObjectPoolType objectPoolType) 43 | { 44 | ObjectPoolType = objectPoolType; 45 | } 46 | } 47 | 48 | } 49 | 50 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/ObjectPoolSystem/Interfaces/BaseObjectForObjectPoolSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 03f14170bac62ec4f8f163afe2c156f4 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/ObjectPoolSystem/ManagerObjectPool.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9cbfc5bf30accd34da2ec7c2e20a267f 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/ObjectPoolSystem/ManagerObjectPool/ManagerObjectPool.cs: -------------------------------------------------------------------------------- 1 | using Tolian.Runtime.Systems.ObjectPoolDomain; 2 | using Tolian.Runtime.Systems.ServiceLocatorDomain; 3 | using UnityEngine; 4 | 5 | namespace Tolian.Runtime.Core.Managers 6 | { 7 | /// 8 | /// This class controls object pools via "ObjectPoolSystem" 9 | /// 10 | [RequireComponent(typeof(ObjectPoolSystem))] 11 | public class ManagerObjectPool : MonoBehaviourService 12 | { 13 | public ObjectPoolSystem ObjectPoolSystem { get; private set; } 14 | 15 | protected override void Awake() 16 | { 17 | base.Awake(); 18 | ObjectPoolSystem = GetComponent(); 19 | } 20 | 21 | } 22 | } 23 | 24 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/ObjectPoolSystem/ManagerObjectPool/ManagerObjectPool.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c142dac56594312468e9309ed0e5888b 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/ObjectPoolSystem/ObjectPoolSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4ed5bd4cb8526a1449e35310c6501f7d 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/OnBoardingSystem.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 12f5b67c372474b4cadfd4ec69697552 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/OnBoardingSystem/ControllerOnBoarding.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | using Tolian.Runtime.Core.Managers; 6 | using UnityEngine; 7 | 8 | namespace Tolian.Runtime.Systems.OnboardingSystem 9 | { 10 | 11 | /// 12 | /// This system is on progress. Please do not use it yet. 13 | /// 14 | public class ControllerOnBoarding : MonoBehaviour 15 | { 16 | public List OnboardingSteps = new List(); 17 | 18 | private void Awake() 19 | { 20 | OnboardingSteps = GetComponentsInChildren(true).ToList(); 21 | } 22 | 23 | private void Start() 24 | { 25 | for (int i = 0; i < OnboardingSteps.Count; i++) 26 | { 27 | OnboardingSteps[i].AddThisStepToSaveSystemIfNotExistInSaveSystem(); 28 | } 29 | } 30 | 31 | public void StartNextUncompletedOnBoardingStep() 32 | { 33 | List ids = new List(); 34 | for (int i = 0; i < OnboardingSteps.Count; i++) 35 | { 36 | ids.Add(OnboardingSteps[i].UniqueId); 37 | } 38 | 39 | var datasOfTheController = ManagerServiceLocator.Instance.ServiceLocatorSystem.GetService().SaveSystem.SaveState.OnboardingStepsCompletionSituations 40 | .Where(x => ids.Contains(x.Id)).ToList(); 41 | 42 | if (datasOfTheController.Any(x => !x.IsCompleted)) 43 | { 44 | var firstUncompletedStep = datasOfTheController 45 | .First(x => !x.IsCompleted); 46 | 47 | if (OnboardingSteps.Any(x => x.UniqueId == firstUncompletedStep.Id)) 48 | { 49 | var onboardingStep = OnboardingSteps.First(x => x.UniqueId == firstUncompletedStep.Id); 50 | onboardingStep.GetNextUncompletedOnBoardingTask().StartTask(); 51 | } 52 | else 53 | { 54 | return; 55 | } 56 | 57 | } 58 | else 59 | { 60 | return; 61 | } 62 | } 63 | } 64 | } 65 | 66 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/OnBoardingSystem/ControllerOnBoarding.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 518a1bc0b3583ea4b825092f88a94c64 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/OnBoardingSystem/OnBoardingTask.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Linq; 3 | using Tolian.Runtime.Core.Managers; 4 | using UnityEngine; 5 | 6 | namespace Tolian.Runtime.Systems.OnboardingSystem 7 | { 8 | public abstract class OnBoardingTask : MonoBehaviour 9 | { 10 | public bool IsTaskCompleted = false; 11 | public OnboardingStep OnboardingStep { get; protected set; } 12 | 13 | private ManagerSave _managerSave; 14 | 15 | private void Awake() 16 | { 17 | OnboardingStep = GetComponentInParent(true); 18 | } 19 | 20 | private void Start() 21 | { 22 | _managerSave = ManagerServiceLocator.Instance.ServiceLocatorSystem.GetService(); 23 | } 24 | 25 | public abstract void StartTask(); 26 | 27 | public void CompleteTask() 28 | { 29 | IsTaskCompleted = true; 30 | CompleteTaskInternal(() => 31 | { 32 | int taskIndex = transform.GetSiblingIndex(); 33 | if (taskIndex == OnboardingStep.OnBoardingTasks.Count - 1) 34 | { 35 | try 36 | { 37 | if (_managerSave.SaveSystem.SaveState.OnboardingStepsCompletionSituations 38 | .Any(x => x.Id == OnboardingStep.UniqueId)) 39 | { 40 | var data = _managerSave.SaveSystem.SaveState.OnboardingStepsCompletionSituations 41 | .First(x => x.Id == OnboardingStep.UniqueId); 42 | data.IsCompleted = true; 43 | _managerSave.SaveSystem.Save(); 44 | } 45 | 46 | } 47 | catch (Exception exception) 48 | { 49 | Console.WriteLine(exception.Message); 50 | throw; 51 | } 52 | } 53 | else 54 | { 55 | var nextTask = OnboardingStep.OnBoardingTasks[taskIndex + 1]; 56 | nextTask.StartTask(); 57 | } 58 | }); 59 | 60 | } 61 | 62 | protected abstract void CompleteTaskInternal(Action nextTaskCallback); 63 | } 64 | } 65 | 66 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/OnBoardingSystem/OnBoardingTask.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 83689fc34b0f47747bb1d3ba579a18d0 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/OnBoardingSystem/OnBoardingTasks.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 69c7eb1dd8a7a5a47aab0ea7af5477e5 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/OnBoardingSystem/OnBoardingTasks/OnBoardingTaskMoveToPosition.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using System.Collections.Generic; 4 | using UnityEngine; 5 | 6 | namespace Tolian.Runtime.Systems.OnboardingSystem 7 | { 8 | public class OnBoardingTaskMoveToPosition : OnBoardingTask 9 | { 10 | [SerializeField] private Transform _targetTransform; 11 | [SerializeField] private LineRenderer _lineRenderer; 12 | 13 | public override void StartTask() 14 | { 15 | _lineRenderer.gameObject.SetActive(true); 16 | } 17 | 18 | protected override void CompleteTaskInternal(Action nextTaskCallback) 19 | { 20 | _lineRenderer.gameObject.SetActive(false); 21 | nextTaskCallback(); 22 | } 23 | 24 | private void Update() 25 | { 26 | if(!_lineRenderer.gameObject.activeInHierarchy) return; 27 | 28 | // _lineRenderer.SetPosition(0, PlayerTransform); 29 | _lineRenderer.SetPosition(1, _targetTransform.position); 30 | } 31 | 32 | 33 | } 34 | 35 | } 36 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/OnBoardingSystem/OnBoardingTasks/OnBoardingTaskMoveToPosition.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b232ce5533243374da4c1615d221750b 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/OnBoardingSystem/OnboardingStep.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | using Tolian.Runtime.Core.Managers; 6 | using Tolian.Runtime.Systems.SaveDomain; 7 | 8 | using UnityEngine; 9 | 10 | namespace Tolian.Runtime.Systems.OnboardingSystem 11 | { 12 | public class OnboardingStep : MonoBehaviour 13 | { 14 | public int UniqueId; 15 | public List OnBoardingTasks = new List(); 16 | 17 | private ManagerSave _managerSave; 18 | private void Awake() 19 | { 20 | OnBoardingTasks = GetComponentsInChildren(true).ToList(); 21 | } 22 | 23 | private void OnEnable() 24 | { 25 | _managerSave = ManagerServiceLocator.Instance.ServiceLocatorSystem.GetService(); 26 | } 27 | 28 | public void AddThisStepToSaveSystemIfNotExistInSaveSystem() 29 | { 30 | OnboardingStepsCompletionSituation 31 | onboardingStepsCompletionSituation = new OnboardingStepsCompletionSituation(); 32 | 33 | onboardingStepsCompletionSituation.Id = UniqueId; 34 | onboardingStepsCompletionSituation.IsCompleted = false; 35 | 36 | bool isSaveSystemContainsThisStep = 37 | _managerSave.SaveSystem.SaveState.OnboardingStepsCompletionSituations.Any(x => x.Id == UniqueId); 38 | if (!isSaveSystemContainsThisStep) 39 | { 40 | _managerSave.SaveSystem.SaveState.OnboardingStepsCompletionSituations.Add(onboardingStepsCompletionSituation); 41 | } 42 | } 43 | 44 | public OnBoardingTask GetNextUncompletedOnBoardingTask() 45 | { 46 | if (OnBoardingTasks.Any(x =>!x.IsTaskCompleted)) 47 | { 48 | var onBoardingTask = OnBoardingTasks.First(x=> !x.IsTaskCompleted); 49 | return onBoardingTask; 50 | } 51 | 52 | return null; 53 | } 54 | } 55 | 56 | } 57 | 58 | 59 | 60 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/OnBoardingSystem/OnboardingStep.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: dc3d02ae08031544abde8de4c1fd1848 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/SaveSystem.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8d10f6842bf827b4ab845b82b40a9a6d 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/SaveSystem/SaveClasses.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3e0e37b545182b04eb3b85f5d9322318 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/SaveSystem/SaveClasses/OnboardingStepsCompletionSitutation.cs: -------------------------------------------------------------------------------- 1 | namespace Tolian.Runtime.Systems.SaveDomain 2 | { 3 | //-------------For Save System----------------- 4 | [System.Serializable] 5 | public class OnboardingStepsCompletionSituation 6 | { 7 | public int Id; 8 | public bool IsCompleted; 9 | } 10 | } 11 | 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/SaveSystem/SaveClasses/OnboardingStepsCompletionSitutation.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d2c96869fda0a27499393c09fdb322c3 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/SaveSystem/SaveState.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | namespace Tolian.Runtime.Systems.SaveDomain 6 | { 7 | [System.Serializable] 8 | public class SaveState 9 | { 10 | #region OnBoarding 11 | public List OnboardingStepsCompletionSituations; 12 | #endregion 13 | 14 | #region LevelSettings 15 | public int LevelCounter; 16 | public int LastLevelIndex; 17 | #endregion 18 | 19 | #region PlayerSettings 20 | public int TotalMoneyAmount; 21 | public int CharacterIconListNo; 22 | public string PlayerName; 23 | #endregion 24 | 25 | #region Preferences 26 | public bool IsSoundOn; 27 | public bool IsVibrationOn; 28 | public bool IsNoAdsOn; 29 | #endregion 30 | 31 | public void SetInitialValues() 32 | { 33 | #region OnBoarding 34 | OnboardingStepsCompletionSituations = new List(); 35 | #endregion 36 | 37 | #region LevelSettings 38 | LastLevelIndex = 1; 39 | LevelCounter = 1; 40 | #endregion 41 | 42 | #region CharacterSettings 43 | TotalMoneyAmount = 0; 44 | CharacterIconListNo = 0; 45 | PlayerName = "Player"; 46 | #endregion 47 | 48 | #region Preferences 49 | IsSoundOn = true; 50 | IsVibrationOn = true; 51 | IsNoAdsOn = false; 52 | #endregion 53 | } 54 | } 55 | 56 | } 57 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/SaveSystem/SaveState.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 46110b019db703c46bde86f3176fc9c8 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/SaveSystem/SaveSystem.cs: -------------------------------------------------------------------------------- 1 | 2 | using Tolian.Runtime.Systems.DebuggerSystem; 3 | using UnityEngine; 4 | 5 | namespace Tolian.Runtime.Systems.SaveDomain 6 | { 7 | /// 8 | /// This class handles all save/load systems with one single class which is named as "SaveState". 9 | /// This class can be extended by adding more security. 10 | /// This class is using Easy Save System 3 as provider. It can be replaced by other systems. 11 | /// 12 | /// Tip: Please do not use constructor is "SaveSystem". It causes some errors. 13 | /// 14 | public class SaveSystem : MonoBehaviour 15 | { 16 | #region Fields 17 | public SaveState SaveState = new SaveState(); 18 | private const string _firstSaveCompletedString = "FirstSaveCompleted"; 19 | #endregion 20 | 21 | private void Start() 22 | { 23 | Load(); 24 | } 25 | 26 | /// 27 | /// Save the current state of SAVESTATE 28 | /// 29 | public void Save() 30 | { 31 | ES3.Save(_firstSaveCompletedString, true); // Save the "first Save" 32 | ES3.Save("state", SaveState); // Save the "State" 33 | 34 | ManagerDebugger.Log("The game session saved successfully", gameObject); 35 | } 36 | 37 | /// 38 | /// Load and Update the SAVESTATE 39 | /// 40 | public void Load() 41 | { 42 | bool isExist = ES3.KeyExists(_firstSaveCompletedString); 43 | if (!isExist) 44 | { 45 | SaveState = new SaveState(); 46 | SaveState.SetInitialValues(); 47 | Save(); 48 | 49 | ManagerDebugger.Log("The inital data created successfully", gameObject); 50 | } 51 | else if(isExist) 52 | { 53 | SaveState = ES3.Load("state", new SaveState()); 54 | 55 | ManagerDebugger.Log("The saved data loaded successfully", gameObject); 56 | } 57 | 58 | } 59 | } 60 | } 61 | 62 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/SaveSystem/SaveSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 801dbec73b3eb964cb14ad40d15865a4 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/ServiceLocatorSystem.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 029b4a8e260eb06429ce93bc8286ba26 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/ServiceLocatorSystem/Interfaces.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9da2e7447cd68a944b39e83baaf6e035 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/ServiceLocatorSystem/Interfaces/IService.cs: -------------------------------------------------------------------------------- 1 | namespace Tolian.Runtime.Systems.ServiceLocatorDomain 2 | { 3 | public interface IService 4 | { 5 | void RegisterToManagerServiceLocator(); 6 | 7 | void UnregisterFromManagerServiceLocator(); 8 | } 9 | } 10 | 11 | 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/ServiceLocatorSystem/Interfaces/IService.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c5c830758ed07d840849db28941a5d76 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/ServiceLocatorSystem/MonoBehaviourService.cs: -------------------------------------------------------------------------------- 1 | using Tolian.Runtime.Core.Managers; 2 | using UnityEngine; 3 | 4 | namespace Tolian.Runtime.Systems.ServiceLocatorDomain 5 | { 6 | /// 7 | /// For SERVICE LOCATOR Design Pattern => Base and abstract class for MonobehaviourServices. 8 | /// 9 | public abstract class MonoBehaviourService : MonoBehaviour, IService 10 | { 11 | protected virtual void Awake() 12 | { 13 | RegisterToManagerServiceLocator(); 14 | } 15 | 16 | protected virtual void OnDisable() 17 | { 18 | UnregisterFromManagerServiceLocator(); 19 | } 20 | 21 | 22 | public void RegisterToManagerServiceLocator() 23 | { 24 | if(!ManagerServiceLocator.Instance) return; 25 | 26 | ManagerServiceLocator.Instance.ServiceLocatorSystem.Register(this); 27 | } 28 | 29 | public void UnregisterFromManagerServiceLocator() 30 | { 31 | if(!ManagerServiceLocator.Instance) return; 32 | 33 | ManagerServiceLocator.Instance.ServiceLocatorSystem.Unregister(this); 34 | } 35 | } 36 | 37 | } 38 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/ServiceLocatorSystem/MonoBehaviourService.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0ea9096fa8c52f541a7797115a0af51c 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/ServiceLocatorSystem/ServiceLocatorSystem.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | using UnityEngine; 6 | 7 | namespace Tolian.Runtime.Systems.ServiceLocatorDomain 8 | { 9 | public class ServiceLocatorSystem : MonoBehaviour 10 | { 11 | private List _monoBehaviourServices = new(); 12 | 13 | public void Register(MonoBehaviourService targetMonoBehaviourService) 14 | { 15 | bool isServiceExist = _monoBehaviourServices.Any(x => x == targetMonoBehaviourService); 16 | 17 | if (!isServiceExist) 18 | { 19 | _monoBehaviourServices.Add(targetMonoBehaviourService); 20 | } 21 | } 22 | public void Unregister(MonoBehaviourService targetMonoBehaviourService) 23 | { 24 | bool isServiceExist = _monoBehaviourServices.Any(x => x == targetMonoBehaviourService); 25 | 26 | if (isServiceExist) 27 | { 28 | _monoBehaviourServices.Remove(targetMonoBehaviourService); 29 | } 30 | } 31 | 32 | public T GetService() where T: MonoBehaviourService, new() 33 | { 34 | Type type = typeof(T); 35 | 36 | bool isServiceExist = _monoBehaviourServices.Any(x => x.GetType() == typeof(T)); 37 | 38 | if (isServiceExist) 39 | { 40 | return (T)_monoBehaviourServices.First(x => x.GetType() == typeof(T));; 41 | } 42 | 43 | throw new ArgumentOutOfRangeException(); 44 | } 45 | } 46 | } 47 | 48 | 49 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/ServiceLocatorSystem/ServiceLocatorSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e3d6464ef5d7da64baba5d1e1bb49771 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/SingletonSystem.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 593d3645448b577438a252f23011883e 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/SingletonSystem/Singleton.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | namespace Tolian.Runtime.Abstract.DesignPatterns.SingletonSystem 6 | { 7 | /// 8 | /// / For SINGLETON Design Pattern => Base and abstract class for Singletons. 9 | /// 10 | /// 11 | public class Singleton : MonoBehaviour where T : MonoBehaviour 12 | { 13 | /// 14 | /// This bool determines that this singleton is "DontDestroyOnLoad" or not 15 | /// 16 | [SerializeField] private bool dontDestroy = false; 17 | 18 | static T m_Instance; 19 | public static T Instance { 20 | get { 21 | if (m_Instance == null) 22 | { 23 | m_Instance = FindObjectOfType(); 24 | } 25 | return m_Instance; 26 | } 27 | } 28 | 29 | protected virtual void Awake() { 30 | if (m_Instance == null) 31 | { 32 | m_Instance = this as T; 33 | if (dontDestroy) 34 | { 35 | transform.parent = null; 36 | DontDestroyOnLoad(this.gameObject); 37 | } 38 | } 39 | else { 40 | if (m_Instance != this as T) 41 | { 42 | Destroy(gameObject); 43 | } 44 | } 45 | } 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/SingletonSystem/Singleton.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 97b07707483ac0344a2d20b38e47daab 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/SoundSystem.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bce26fdf6826860408e038a8cad309e2 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/SoundSystem/SoundSystem.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | namespace Tolian.Runtime.Systems.SoundDomain 6 | { 7 | public class SoundSystem : MonoBehaviour 8 | { 9 | #region REF 10 | public bool PreventSound { get; private set; } = false; 11 | #endregion 12 | 13 | /// 14 | /// Play sound for gameobject already has AudioSource component 15 | /// 16 | /// 17 | /// 18 | /// 19 | public void PlaySound(AudioSource targetAudioSource, AudioClip clipToBePlayed, float volume) 20 | { 21 | if(PreventSound) return; 22 | targetAudioSource.PlayOneShot(clipToBePlayed, volume); 23 | } 24 | 25 | /// 26 | /// Play sound for gameobject does not have AudioSource component 27 | /// 28 | /// 29 | /// 30 | /// 31 | public void PlaySoundAtPoint(Vector3 position, AudioClip clipToBePlayed, float volume) 32 | { 33 | if(PreventSound) return; 34 | AudioSource.PlayClipAtPoint(clipToBePlayed,position,volume); 35 | } 36 | 37 | public void SetPreventSound(bool value) 38 | { 39 | PreventSound = value; 40 | } 41 | } 42 | } 43 | 44 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/SoundSystem/SoundSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 69b1313add6fec549bbd9f52e57e3ff6 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/TolianDebuggerSystem.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c9077d0d23bad6c49b2b31d7d57f74dd 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/TolianDebuggerSystem/ManagerTolianDebugger.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5b8fa3ee41d4d0546898136b66094780 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/TolianDebuggerSystem/ManagerTolianDebugger/ManagerDebugger.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | namespace Tolian.Runtime.Systems.DebuggerSystem 6 | { 7 | public static class ManagerDebugger 8 | { 9 | /// 10 | /// This bool controls availability of LOG function 11 | /// 12 | public static bool PreventDebugging = false; 13 | 14 | /// 15 | /// This is a controllable DEBUG-LOG function 16 | /// 17 | /// 18 | /// 19 | public static void Log(string logMessage, GameObject senderGameObject) 20 | { 21 | if(PreventDebugging) return; 22 | 23 | #if (DEVELOPMENT_BUILD || UNITY_EDITOR) 24 | Debug.Log(logMessage, senderGameObject); 25 | #endif 26 | 27 | } 28 | } 29 | } 30 | 31 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/TolianDebuggerSystem/ManagerTolianDebugger/ManagerDebugger.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5ff2175547242cd4792c496cf1c15bf5 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/UiSystem.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c884d1441b62a924dbfd584001193cb1 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/UiSystem/CanvasUi.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | using UnityEngine; 6 | 7 | namespace Tolian.Runtime.Systems.UiDomain 8 | { 9 | /// 10 | /// Each Canvas objects, except for World Canvases, represented by this class. 11 | /// New canvases can be added by adding a new enum to CanvasType. 12 | /// 13 | public class CanvasUi : MonoBehaviour 14 | { 15 | public CanvasType CanvasType; 16 | public IOpenCloseUiCanvas OpenCloseUiCanvas { get; private set; } 17 | public List CanvasUiParts { get; private set; } 18 | 19 | 20 | private void Awake() 21 | { 22 | CanvasUiParts = GetComponentsInChildren(true).ToList(); 23 | OpenCloseUiCanvas = GetComponent(); 24 | } 25 | 26 | public void SetCanvasActiveness(bool activenessValue) 27 | { 28 | if (activenessValue) 29 | { 30 | OpenCloseUiCanvas.OpenUiCanvas(CanvasUiParts); 31 | } 32 | else if (!activenessValue) 33 | { 34 | OpenCloseUiCanvas.CloseUiCanvas(CanvasUiParts); 35 | } 36 | } 37 | 38 | } 39 | } 40 | 41 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/UiSystem/CanvasUi.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3eb084fd44c7e5948ac9753c99afc18f 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/UiSystem/CanvasUiPart.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using System.Collections.Generic; 4 | using DG.Tweening; 5 | using UnityEngine; 6 | 7 | namespace Tolian.Runtime.Systems.UiDomain 8 | { 9 | public class CanvasUiPart : MonoBehaviour 10 | { 11 | private Vector3 _initScale; 12 | public Vector3 InitScale => _initScale; 13 | 14 | private Tween _scaleTween; 15 | 16 | private void Awake() 17 | { 18 | _initScale = transform.localScale; 19 | } 20 | 21 | public void SetScale(Vector3 targetScale) 22 | { 23 | _scaleTween?.Kill(); 24 | transform.localScale = targetScale; 25 | } 26 | 27 | public void SetScale(Vector3 targetScale, float duration) 28 | { 29 | _scaleTween?.Kill(); 30 | _scaleTween = transform.DOScale(targetScale, duration); 31 | } 32 | 33 | public void SetScale(Vector3 targetScale, float duration, Action callback) 34 | { 35 | _scaleTween?.Kill(); 36 | _scaleTween = transform.DOScale(targetScale, duration) 37 | .OnComplete(()=>callback()); 38 | } 39 | 40 | } 41 | } 42 | 43 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/UiSystem/CanvasUiPart.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 88d977291e4a8644f9753cd5f20e5a48 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/UiSystem/Enum.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d658a819b4729444fb98fd49e0b426ed 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/UiSystem/Enum/CanvasOpeningType.cs: -------------------------------------------------------------------------------- 1 | 2 | namespace Tolian.Runtime.Systems.UiDomain 3 | { 4 | public enum CanvasOpeningType 5 | { 6 | Normal = 0, 7 | Popup = 1 8 | } 9 | } 10 | 11 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/UiSystem/Enum/CanvasOpeningType.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c985dd941f0680f46a3bc945dba62da2 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/UiSystem/Enum/CanvasType.cs: -------------------------------------------------------------------------------- 1 | 2 | namespace Tolian.Runtime.Systems.UiDomain 3 | { 4 | public enum CanvasType 5 | { 6 | CanvasLevel, 7 | CanvasTutorial, 8 | CanvasLevelFail, 9 | CanvasLevelSuccess, 10 | CanvasMoney, 11 | CanvasJoystick, 12 | CanvasUiPointer, 13 | CanvasGetDamage, 14 | CanvasShop, 15 | CanvasSettings, 16 | CanvasInGameButton, 17 | CanvasLoading, 18 | CanvasRank 19 | } 20 | } 21 | 22 | 23 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/UiSystem/Enum/CanvasType.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3684e18c952325842a801ef478b20fbd 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/UiSystem/Enum/UiTutorialType.cs: -------------------------------------------------------------------------------- 1 | namespace Tolian.Runtime.Systems.UiDomain 2 | { 3 | public enum UiTutorialType 4 | { 5 | None = 0, 6 | Infinite = 1, 7 | DragToMove = 2 8 | } 9 | } 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/UiSystem/Enum/UiTutorialType.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3bb2ad93196459943aecd9e7b792190a 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/UiSystem/Interface.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4e97f4b29564c184a8839ff27022337d 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/UiSystem/Interface/IOpenCloseUiCanvas.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace Tolian.Runtime.Systems.UiDomain 4 | { 5 | public interface IOpenCloseUiCanvas 6 | { 7 | void OpenUiCanvas(List canvasUiParts); 8 | void CloseUiCanvas(List canvasUiParts); 9 | 10 | } 11 | } 12 | 13 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/UiSystem/Interface/IOpenCloseUiCanvas.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 953913398615e7a4bbae52060740f87b 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/UiSystem/Systems.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 310bd4c2af7576f4da10d44b6a5fea42 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/UiSystem/Systems/UiCanvasSystem.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | using UnityEngine; 6 | 7 | namespace Tolian.Runtime.Systems.UiDomain 8 | { 9 | public class UiCanvasSystem : MonoBehaviour 10 | { 11 | private List _canvasUis = new(); 12 | 13 | private void Awake() 14 | { 15 | _canvasUis = GetComponentsInChildren(true).ToList(); 16 | } 17 | 18 | public void SetActivenessOfAllCanvases(bool value) 19 | { 20 | for (int i = 0; i < _canvasUis.Count; i++) 21 | { 22 | _canvasUis[i].gameObject.SetActive(value); 23 | } 24 | } 25 | 26 | /// 27 | /// This function sets activeness of canvases. 28 | /// In order to improve memory-control, this function can be extended by "ManagerAddressables" 29 | /// 30 | /// 31 | /// 32 | public void SetActivenessOfSpecificCanvas(CanvasType canvasType, bool activenessValue) 33 | { 34 | bool isCanvasExist = _canvasUis.Any(x => x.CanvasType == canvasType); 35 | if (!isCanvasExist) return; 36 | 37 | var canvasUi = _canvasUis.Find(x => x.CanvasType == canvasType); 38 | if (activenessValue) 39 | { 40 | canvasUi.gameObject.SetActive(true); 41 | } 42 | canvasUi.SetCanvasActiveness(activenessValue); 43 | } 44 | } 45 | } 46 | 47 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/UiSystem/Systems/UiCanvasSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8b0f1d77461d6a24b909c4540e6cdfa4 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/UiSystem/Systems/UiJoystickSystem.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | namespace Tolian.Runtime.Systems.UiDomain 6 | { 7 | public class UiJoystickSystem : MonoBehaviour 8 | { 9 | public Vector2 GetAnchoredPositionFromScreenPoint(Vector2 screenPosition, RectTransform panelRectTransform, RectTransform joystickImageBackground ) 10 | { 11 | Vector2 localPoint = Vector2.zero; 12 | 13 | if (RectTransformUtility.ScreenPointToLocalPointInRectangle(panelRectTransform, screenPosition, 14 | null, out localPoint)) 15 | { 16 | Vector2 pivotOffset = panelRectTransform.pivot * panelRectTransform.sizeDelta; 17 | return localPoint - (joystickImageBackground.anchorMax * panelRectTransform.sizeDelta) + pivotOffset; 18 | } 19 | return Vector2.zero; 20 | } 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/UiSystem/Systems/UiJoystickSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e733718909fd91744ac2c7ae3d58be93 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/VibrateSystem.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a53585b824a3c364bba10b8b99034444 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/VibrateSystem/VibrateSystem.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using MoreMountains.NiceVibrations; 4 | using UnityEngine; 5 | 6 | namespace Tolian.Runtime.Systems.VibrateDomain 7 | { 8 | public class VibrateSystem : MonoBehaviour 9 | { 10 | public bool PreventVibration { get; private set; } = false; 11 | 12 | public void Vibrate(HapticTypes targetHapticType) 13 | { 14 | if (PreventVibration) return; 15 | MMVibrationManager.Haptic(targetHapticType); 16 | } 17 | 18 | public void SetPreventVibration(bool value) 19 | { 20 | PreventVibration = value; 21 | } 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /Scripts/Runtime/Systems/VibrateSystem/VibrateSystem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a92d074706927294fab6eb39d91665f8 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Test.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9a7b4ce17cc78794e9eb0a7a17270cbd 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Test/EditModeTests.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d49020cc66c997243843ae3e5c657883 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Test/EditModeTests/Test1.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | public class Test1 : MonoBehaviour 6 | { 7 | // Start is called before the first frame update 8 | void Start() 9 | { 10 | 11 | } 12 | 13 | // Update is called once per frame 14 | void Update() 15 | { 16 | 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Scripts/Test/EditModeTests/Test1.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5a3f3087660bac8478f5e64c57c6a81f 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/Test/PlayModeTests.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 99cfb023d66618f4cbc6945203efcd35 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/Test/PlayModeTests/Test2.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | public class Test2 : MonoBehaviour 6 | { 7 | // Start is called before the first frame update 8 | void Start() 9 | { 10 | 11 | } 12 | 13 | // Update is called once per frame 14 | void Update() 15 | { 16 | 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Scripts/Test/PlayModeTests/Test2.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3ab12d5050b71104e9b6b56fc12eee25 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Scripts/__Doxygen.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 436bef9f72bc69f4e8db566023b1bc47 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Scripts/__Doxygen/README.md: -------------------------------------------------------------------------------- 1 | My Main Page {#mainpage} 2 | ============ 3 | 4 | Documentation that will appear on the main page -------------------------------------------------------------------------------- /Scripts/__Doxygen/README.md.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b818cb96d7a18104784ada6de623f8ec 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | --------------------------------------------------------------------------------