refactor: clean up score manager

This commit is contained in:
cuqmbr 2022-07-05 14:33:54 +03:00
parent 53a77e9c78
commit b50829e510
6 changed files with 119 additions and 45 deletions

View File

@ -398,10 +398,8 @@ MonoBehaviour:
_initialReward: 1 _initialReward: 1
_initialMaxExperience: 3 _initialMaxExperience: 3
_initialRewardMultiplier: 1 _initialRewardMultiplier: 1
_maxRewardMultiplier: 0 _maxRewardMultiplier: 64
_scoreText: {fileID: 35713923} uiManager: {fileID: 1676064789}
_experienceSlider: {fileID: 2325626163454522012}
_multiplierText: {fileID: 1114100292}
--- !u!1 &333766462 --- !u!1 &333766462
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -605,7 +603,7 @@ Transform:
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: [] m_Children: []
m_Father: {fileID: 1827232688} m_Father: {fileID: 1827232688}
m_RootOrder: 2 m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &477184385 --- !u!114 &477184385
MonoBehaviour: MonoBehaviour:
@ -631,6 +629,7 @@ GameObject:
- component: {fileID: 547016914} - component: {fileID: 547016914}
- component: {fileID: 547016916} - component: {fileID: 547016916}
- component: {fileID: 547016915} - component: {fileID: 547016915}
- component: {fileID: 547016917}
m_Layer: 0 m_Layer: 0
m_Name: Touch Image m_Name: Touch Image
m_TagString: Untagged m_TagString: Untagged
@ -695,6 +694,21 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 547016913} m_GameObject: {fileID: 547016913}
m_CullTransparentMesh: 1 m_CullTransparentMesh: 1
--- !u!114 &547016917
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 547016913}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: e19747de3f5aca642ab2be37e372fb86, type: 3}
m_Name:
m_EditorClassIdentifier:
m_EffectColor: {r: 0, g: 0, b: 0, a: 0.5}
m_EffectDistance: {x: 1, y: -1}
m_UseGraphicAlpha: 1
--- !u!1 &565597289 --- !u!1 &565597289
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -1031,18 +1045,18 @@ RectTransform:
m_PrefabInstance: {fileID: 0} m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 988032566} m_GameObject: {fileID: 988032566}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: -0, y: -0, z: 0.26949832, w: 0.9630009}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 2, y: 2, z: 2}
m_Children: m_Children:
- {fileID: 1251805419} - {fileID: 1251805419}
- {fileID: 547016914} - {fileID: 547016914}
m_Father: {fileID: 1025198877} m_Father: {fileID: 1025198877}
m_RootOrder: 1 m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 31.269}
m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 153, y: -428} m_AnchoredPosition: {x: 167, y: -395}
m_SizeDelta: {x: 100, y: 100} m_SizeDelta: {x: 100, y: 100}
m_Pivot: {x: 0.5, y: 0.5} m_Pivot: {x: 0.5, y: 0.5}
--- !u!1 &991236185 --- !u!1 &991236185
@ -1144,7 +1158,7 @@ GameObject:
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 0
--- !u!224 &1025198877 --- !u!224 &1025198877
RectTransform: RectTransform:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -1734,7 +1748,7 @@ GameObject:
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 0 m_IsActive: 1
--- !u!224 &1119517689 --- !u!224 &1119517689
RectTransform: RectTransform:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -1842,6 +1856,7 @@ GameObject:
- component: {fileID: 1251805419} - component: {fileID: 1251805419}
- component: {fileID: 1251805421} - component: {fileID: 1251805421}
- component: {fileID: 1251805420} - component: {fileID: 1251805420}
- component: {fileID: 1251805422}
m_Layer: 0 m_Layer: 0
m_Name: Hand base Image m_Name: Hand base Image
m_TagString: Untagged m_TagString: Untagged
@ -1906,6 +1921,21 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1251805418} m_GameObject: {fileID: 1251805418}
m_CullTransparentMesh: 1 m_CullTransparentMesh: 1
--- !u!114 &1251805422
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1251805418}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: e19747de3f5aca642ab2be37e372fb86, type: 3}
m_Name:
m_EditorClassIdentifier:
m_EffectColor: {r: 0, g: 0, b: 0, a: 0.5}
m_EffectDistance: {x: 1, y: -1}
m_UseGraphicAlpha: 1
--- !u!1 &1305720405 --- !u!1 &1305720405
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -2029,7 +2059,7 @@ RectTransform:
m_PrefabInstance: {fileID: 0} m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1542726290} m_GameObject: {fileID: 1542726290}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0.0007854348, w: 0.9999997}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: m_Children:
@ -2038,7 +2068,7 @@ RectTransform:
- {fileID: 1114100291} - {fileID: 1114100291}
m_Father: {fileID: 1119517689} m_Father: {fileID: 1119517689}
m_RootOrder: 2 m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0.09}
m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 192, y: 448} m_AnchoredPosition: {x: 192, y: 448}
@ -2162,6 +2192,52 @@ Camera:
m_OcclusionCulling: 0 m_OcclusionCulling: 0
m_StereoConvergence: 10 m_StereoConvergence: 10
m_StereoSeparation: 0.022 m_StereoSeparation: 0.022
--- !u!1 &1676064787
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1676064788}
- component: {fileID: 1676064789}
m_Layer: 0
m_Name: UI Manager
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1676064788
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1676064787}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 1827232688}
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &1676064789
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1676064787}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 51461a5e829c16567902ce08ad663025, type: 3}
m_Name:
m_EditorClassIdentifier:
_scoreText: {fileID: 35713923}
_experienceSlider: {fileID: 2325626163454522012}
_multiplierText: {fileID: 1114100292}
--- !u!1 &1827232687 --- !u!1 &1827232687
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -2191,6 +2267,7 @@ Transform:
m_Children: m_Children:
- {fileID: 1164961473} - {fileID: 1164961473}
- {fileID: 229399453} - {fileID: 229399453}
- {fileID: 1676064788}
- {fileID: 477184384} - {fileID: 477184384}
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_RootOrder: 0 m_RootOrder: 0
@ -2582,7 +2659,11 @@ PrefabInstance:
m_Modifications: m_Modifications:
- target: {fileID: 1227271403178556551, guid: e888b07bccd19c6b48e082f0698de4bd, type: 3} - target: {fileID: 1227271403178556551, guid: e888b07bccd19c6b48e082f0698de4bd, type: 3}
propertyPath: m_Value propertyPath: m_Value
value: 1 value: 0
objectReference: {fileID: 0}
- target: {fileID: 1227271403178556551, guid: e888b07bccd19c6b48e082f0698de4bd, type: 3}
propertyPath: m_MaxValue
value: 3
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 1227271403178556551, guid: e888b07bccd19c6b48e082f0698de4bd, type: 3} - target: {fileID: 1227271403178556551, guid: e888b07bccd19c6b48e082f0698de4bd, type: 3}
propertyPath: m_TargetGraphic propertyPath: m_TargetGraphic
@ -2590,11 +2671,11 @@ PrefabInstance:
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 3768637720116437164, guid: e888b07bccd19c6b48e082f0698de4bd, type: 3} - target: {fileID: 3768637720116437164, guid: e888b07bccd19c6b48e082f0698de4bd, type: 3}
propertyPath: m_AnchorMax.x propertyPath: m_AnchorMax.x
value: 1 value: 0
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 3768637720116437164, guid: e888b07bccd19c6b48e082f0698de4bd, type: 3} - target: {fileID: 3768637720116437164, guid: e888b07bccd19c6b48e082f0698de4bd, type: 3}
propertyPath: m_AnchorMax.y propertyPath: m_AnchorMax.y
value: 1 value: 0
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 4892302239744106471, guid: e888b07bccd19c6b48e082f0698de4bd, type: 3} - target: {fileID: 4892302239744106471, guid: e888b07bccd19c6b48e082f0698de4bd, type: 3}
propertyPath: m_Pivot.x propertyPath: m_Pivot.x
@ -2682,7 +2763,7 @@ PrefabInstance:
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 7256145079461275005, guid: e888b07bccd19c6b48e082f0698de4bd, type: 3} - target: {fileID: 7256145079461275005, guid: e888b07bccd19c6b48e082f0698de4bd, type: 3}
propertyPath: m_Name propertyPath: m_Name
value: Slider value: Experience Slider
objectReference: {fileID: 0} objectReference: {fileID: 0}
m_RemovedComponents: [] m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: e888b07bccd19c6b48e082f0698de4bd, type: 3} m_SourcePrefab: {fileID: 100100000, guid: e888b07bccd19c6b48e082f0698de4bd, type: 3}

View File

@ -1,7 +0,0 @@
public enum GameState
{
Enter,
Menu,
Game,
GameOver
}

View File

@ -1,11 +0,0 @@
fileFormatVersion: 2
guid: 3fbc2d7135eef51159fe3ef04ca60179
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -7,7 +7,7 @@ public class GameStateController : MonoBehaviour
private void Awake() private void Awake()
{ {
// Change game state to selected in inspector state when the game starts // Change game state to state selected in inspector when the game starts
GameStateManager.Instance.ChangeState(ChangeToState); GameStateManager.Instance.ChangeState(ChangeToState);
PlayerEvents.OnBallTouched += () => GameStateManager.Instance.ChangeState(GameState.Game); PlayerEvents.OnBallTouched += () => GameStateManager.Instance.ChangeState(GameState.Game);

View File

@ -1,6 +1,14 @@
using System; using System;
using UnityEngine; using UnityEngine;
public enum GameState
{
Enter,
Menu,
Game,
GameOver
}
public class GameStateManager public class GameStateManager
{ {
// Make a singleton to be able to easily access game state manager from any script // Make a singleton to be able to easily access game state manager from any script

View File

@ -9,7 +9,6 @@ public class ScoreManager : MonoBehaviour
[Header("Reward")] [Header("Reward")]
[SerializeField] private int _initialReward = 1; [SerializeField] private int _initialReward = 1;
private int _currentReward = 1;
[Header("Experience")] [Header("Experience")]
[SerializeField] private int _initialMaxExperience = 3; [SerializeField] private int _initialMaxExperience = 3;
@ -46,18 +45,21 @@ public class ScoreManager : MonoBehaviour
private void AddScore() private void AddScore()
{ {
_currentScore += _currentReward; _currentScore += _initialReward * _currentRewardMultiplier;
uiManager.SetScoreText(_currentScore); uiManager.SetScoreText(_currentScore);
#if UNITY_EDITOR #if UNITY_EDITOR
Debug.Log($"XP: {_currentExperience} / {_currentMaxExperience}. SCORE: {_currentScore}. LVL: {_currentRewardMultiplier}. REWARD: {_currentReward}"); Debug.Log($"XP: {_currentExperience} / {_currentMaxExperience}. " +
$"SCORE: {_currentScore}. " +
$"LVL: {_currentRewardMultiplier}. " +
$"REWARD: {_initialReward * _currentRewardMultiplier}");
#endif #endif
} }
private void AddExperience() private void AddExperience()
{ {
if (_currentRewardMultiplier <= _maxRewardMultiplier) if (_currentRewardMultiplier < _maxRewardMultiplier)
_currentExperience++; _currentExperience++;
if (_currentExperience == _currentMaxExperience) if (_currentExperience == _currentMaxExperience)
@ -70,7 +72,6 @@ public class ScoreManager : MonoBehaviour
{ {
_currentRewardMultiplier *= 2; _currentRewardMultiplier *= 2;
_currentMaxExperience = (int)Math.Ceiling(_currentMaxExperience * 1.5f); _currentMaxExperience = (int)Math.Ceiling(_currentMaxExperience * 1.5f);
_currentReward = _initialReward * _currentRewardMultiplier;
_currentExperience = 0; _currentExperience = 0;
uiManager.SetMultiplierText(_currentRewardMultiplier); uiManager.SetMultiplierText(_currentRewardMultiplier);
@ -87,15 +88,16 @@ public class ScoreManager : MonoBehaviour
_currentExperience = 0; _currentExperience = 0;
_currentMaxExperience = _initialMaxExperience; _currentMaxExperience = _initialMaxExperience;
_currentReward = _initialReward;
uiManager.SetMultiplierText(_currentRewardMultiplier); uiManager.SetMultiplierText(_currentRewardMultiplier);
uiManager.SetExperienceSliderValue(_currentExperience); uiManager.SetExperienceSliderValue(_currentExperience);
uiManager.SetExperienceSliderMaxValue(_currentMaxExperience); uiManager.SetExperienceSliderMaxValue(_currentMaxExperience);
#if UNITY_EDITOR #if UNITY_EDITOR
Debug.Log($"Multiplier and reward is reseted!"); Debug.Log($"Multiplier is reseted" +
Debug.Log($"XP: {_currentExperience} / {_currentMaxExperience}. SCORE: {_currentScore}. LVL: {_currentRewardMultiplier}. REWARD: {_currentReward}"); $"XP: {_currentExperience} / {_currentMaxExperience}. " +
$"SCORE: {_currentScore}. " +
$"LVL: {_currentRewardMultiplier}. " +
$"REWARD: {_initialReward * _currentRewardMultiplier}");
#endif #endif
} }
@ -119,6 +121,7 @@ public class ScoreManager : MonoBehaviour
case GameState.Enter: case GameState.Enter:
break; break;
case GameState.Menu: case GameState.Menu:
ResetAllValues();
break; break;
case GameState.Game: case GameState.Game:
break; break;