Improved code usabililty of upgrade unlocks

This commit is contained in:
Pasha Bibko
2026-04-14 15:38:20 +01:00
parent 31844bbeee
commit 41431b9aae
4 changed files with 132 additions and 52 deletions

View File

@@ -128,6 +128,7 @@ GameObject:
serializedVersion: 6 serializedVersion: 6
m_Component: m_Component:
- component: {fileID: 1077661} - component: {fileID: 1077661}
- component: {fileID: 1077665}
- component: {fileID: 1077664} - component: {fileID: 1077664}
- component: {fileID: 1077663} - component: {fileID: 1077663}
- component: {fileID: 1077662} - component: {fileID: 1077662}
@@ -240,6 +241,20 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1077660} m_GameObject: {fileID: 1077660}
m_CullTransparentMesh: 1 m_CullTransparentMesh: 1
--- !u!114 &1077665
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1077660}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f9c5dbc6e19942c19f4dc93fc3777677, type: 3}
m_Name:
m_EditorClassIdentifier: Fruitomation::Fruitomation.Game.BasicUpgradeButton
Upgrade: 3
UpgradeCost: 0
--- !u!1 &120641730 --- !u!1 &120641730
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -569,6 +584,7 @@ GameObject:
serializedVersion: 6 serializedVersion: 6
m_Component: m_Component:
- component: {fileID: 216535972} - component: {fileID: 216535972}
- component: {fileID: 216535976}
- component: {fileID: 216535975} - component: {fileID: 216535975}
- component: {fileID: 216535974} - component: {fileID: 216535974}
- component: {fileID: 216535973} - component: {fileID: 216535973}
@@ -681,6 +697,20 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 216535971} m_GameObject: {fileID: 216535971}
m_CullTransparentMesh: 1 m_CullTransparentMesh: 1
--- !u!114 &216535976
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 216535971}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f9c5dbc6e19942c19f4dc93fc3777677, type: 3}
m_Name:
m_EditorClassIdentifier: Fruitomation::Fruitomation.Game.BasicUpgradeButton
Upgrade: 1
UpgradeCost: 0
--- !u!1 &291432704 --- !u!1 &291432704
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -769,6 +799,7 @@ GameObject:
serializedVersion: 6 serializedVersion: 6
m_Component: m_Component:
- component: {fileID: 306312743} - component: {fileID: 306312743}
- component: {fileID: 306312747}
- component: {fileID: 306312746} - component: {fileID: 306312746}
- component: {fileID: 306312745} - component: {fileID: 306312745}
- component: {fileID: 306312744} - component: {fileID: 306312744}
@@ -843,7 +874,7 @@ MonoBehaviour:
m_OnClick: m_OnClick:
m_PersistentCalls: m_PersistentCalls:
m_Calls: m_Calls:
- m_Target: {fileID: 572127664} - m_Target: {fileID: 0}
m_TargetAssemblyTypeName: Fruitomation.Game.UpgradeManager, Fruitomation m_TargetAssemblyTypeName: Fruitomation.Game.UpgradeManager, Fruitomation
m_MethodName: UnlockBasicUpgrade m_MethodName: UnlockBasicUpgrade
m_Mode: 5 m_Mode: 5
@@ -893,6 +924,20 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 306312742} m_GameObject: {fileID: 306312742}
m_CullTransparentMesh: 1 m_CullTransparentMesh: 1
--- !u!114 &306312747
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 306312742}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f9c5dbc6e19942c19f4dc93fc3777677, type: 3}
m_Name:
m_EditorClassIdentifier: Fruitomation::Fruitomation.Game.BasicUpgradeButton
Upgrade: 0
UpgradeCost: 0
--- !u!1 &406517114 --- !u!1 &406517114
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -902,6 +947,7 @@ GameObject:
serializedVersion: 6 serializedVersion: 6
m_Component: m_Component:
- component: {fileID: 406517115} - component: {fileID: 406517115}
- component: {fileID: 406517119}
- component: {fileID: 406517118} - component: {fileID: 406517118}
- component: {fileID: 406517117} - component: {fileID: 406517117}
- component: {fileID: 406517116} - component: {fileID: 406517116}
@@ -1014,6 +1060,20 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 406517114} m_GameObject: {fileID: 406517114}
m_CullTransparentMesh: 1 m_CullTransparentMesh: 1
--- !u!114 &406517119
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 406517114}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f9c5dbc6e19942c19f4dc93fc3777677, type: 3}
m_Name:
m_EditorClassIdentifier: Fruitomation::Fruitomation.Game.BasicUpgradeButton
Upgrade: 6
UpgradeCost: 0
--- !u!1 &475841621 --- !u!1 &475841621
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -1151,50 +1211,6 @@ MonoBehaviour:
m_VarianceClampScale: 0.9 m_VarianceClampScale: 0.9
m_ContrastAdaptiveSharpening: 0 m_ContrastAdaptiveSharpening: 0
m_Version: 2 m_Version: 2
--- !u!1 &572127662
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 572127663}
- component: {fileID: 572127664}
m_Layer: 0
m_Name: UpgradesManager
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &572127663
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 572127662}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: -0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &572127664
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 572127662}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 38c26644b322484cb5ca345985d03dd9, type: 3}
m_Name:
m_EditorClassIdentifier: Fruitomation::Fruitomation.Game.UpgradeManager
--- !u!1 &683605710 --- !u!1 &683605710
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -1204,6 +1220,7 @@ GameObject:
serializedVersion: 6 serializedVersion: 6
m_Component: m_Component:
- component: {fileID: 683605711} - component: {fileID: 683605711}
- component: {fileID: 683605715}
- component: {fileID: 683605714} - component: {fileID: 683605714}
- component: {fileID: 683605713} - component: {fileID: 683605713}
- component: {fileID: 683605712} - component: {fileID: 683605712}
@@ -1316,6 +1333,20 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 683605710} m_GameObject: {fileID: 683605710}
m_CullTransparentMesh: 1 m_CullTransparentMesh: 1
--- !u!114 &683605715
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 683605710}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f9c5dbc6e19942c19f4dc93fc3777677, type: 3}
m_Name:
m_EditorClassIdentifier: Fruitomation::Fruitomation.Game.BasicUpgradeButton
Upgrade: 4
UpgradeCost: 0
--- !u!1 &919315872 --- !u!1 &919315872
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -1845,6 +1876,7 @@ GameObject:
serializedVersion: 6 serializedVersion: 6
m_Component: m_Component:
- component: {fileID: 1394817802} - component: {fileID: 1394817802}
- component: {fileID: 1394817806}
- component: {fileID: 1394817805} - component: {fileID: 1394817805}
- component: {fileID: 1394817804} - component: {fileID: 1394817804}
- component: {fileID: 1394817803} - component: {fileID: 1394817803}
@@ -1957,6 +1989,20 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1394817801} m_GameObject: {fileID: 1394817801}
m_CullTransparentMesh: 1 m_CullTransparentMesh: 1
--- !u!114 &1394817806
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1394817801}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f9c5dbc6e19942c19f4dc93fc3777677, type: 3}
m_Name:
m_EditorClassIdentifier: Fruitomation::Fruitomation.Game.BasicUpgradeButton
Upgrade: 5
UpgradeCost: 0
--- !u!1 &1454648453 --- !u!1 &1454648453
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -2377,6 +2423,7 @@ GameObject:
serializedVersion: 6 serializedVersion: 6
m_Component: m_Component:
- component: {fileID: 1992771922} - component: {fileID: 1992771922}
- component: {fileID: 1992771926}
- component: {fileID: 1992771925} - component: {fileID: 1992771925}
- component: {fileID: 1992771924} - component: {fileID: 1992771924}
- component: {fileID: 1992771923} - component: {fileID: 1992771923}
@@ -2489,6 +2536,20 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1992771921} m_GameObject: {fileID: 1992771921}
m_CullTransparentMesh: 1 m_CullTransparentMesh: 1
--- !u!114 &1992771926
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1992771921}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f9c5dbc6e19942c19f4dc93fc3777677, type: 3}
m_Name:
m_EditorClassIdentifier: Fruitomation::Fruitomation.Game.BasicUpgradeButton
Upgrade: 2
UpgradeCost: 0
--- !u!1 &2129197832 --- !u!1 &2129197832
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@@ -2576,4 +2637,3 @@ SceneRoots:
- {fileID: 198458139} - {fileID: 198458139}
- {fileID: 1601651585} - {fileID: 1601651585}
- {fileID: 1630531059} - {fileID: 1630531059}
- {fileID: 572127663}

View File

@@ -0,0 +1,21 @@
using UnityEngine;
using UnityEngine.UI;
namespace Fruitomation.Game
{
public class BasicUpgradeButton : MonoBehaviour
{
[Header("Settings")]
[SerializeField] private BasicUpgrade Upgrade;
[SerializeField] private int UpgradeCost;
private void Awake()
{
Button b = GetComponent<Button>();
b.onClick.AddListener(() =>
{
UpgradeManager.Unlock(Upgrade);
});
}
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: f9c5dbc6e19942c19f4dc93fc3777677
timeCreated: 1776177196

View File

@@ -88,7 +88,7 @@ namespace Fruitomation.Game
} }
} }
public class UpgradeManager : MonoBehaviour public static class UpgradeManager
{ {
private static string Filepath => Path.Combine(Application.persistentDataPath, "upgrades.json"); private static string Filepath => Path.Combine(Application.persistentDataPath, "upgrades.json");
private static UnlockedUpgrades CurrentUpgrades; private static UnlockedUpgrades CurrentUpgrades;
@@ -119,10 +119,6 @@ namespace Fruitomation.Game
File.WriteAllText(Filepath, json); File.WriteAllText(Filepath, json);
} }
public void UnlockBasicUpgrade(string id) public static void Unlock(BasicUpgrade upgrade) => CurrentUpgrades.Unlock(upgrade);
{
BasicUpgrade upgrade = Enum.Parse<BasicUpgrade>(id);
CurrentUpgrades.Unlock(upgrade);
}
} }
} }