Improved look of main scene

This commit is contained in:
2026-04-21 19:53:45 +01:00
parent b88fb5cc50
commit e2d198269a
11 changed files with 294 additions and 120 deletions

View File

@@ -77,19 +77,28 @@ namespace Fruitomation.Game
{
[Serializable] public class Serialized
{
[SerializeField] private BuildingUnlock[] BuildingUnlocks;
[SerializeField] private BasicUpgrade[] BasicUpgrades;
private Serialized()
{
// All logic done in Serialize
// All logic done in Serialize() function
}
public UnlockedUpgrades Unserialize()
{
UnlockedUpgrades upgrades = new();
foreach (BasicUpgrade upgrade in BasicUpgrades)
if (BuildingUnlocks is not null)
{
upgrades.Unlocks.Add(upgrade);
foreach (BuildingUnlock unlock in BuildingUnlocks)
upgrades.Buildings.Add(unlock);
}
if (BasicUpgrades is not null)
{
foreach (BasicUpgrade upgrade in BasicUpgrades)
upgrades.Unlocks.Add(upgrade);
}
return upgrades;
@@ -99,15 +108,16 @@ namespace Fruitomation.Game
{
Serialized serialized = new()
{
BasicUpgrades = upgrades.Unlocks.ToArray()
BuildingUnlocks = upgrades.Buildings.ToArray(),
BasicUpgrades = upgrades.Unlocks.ToArray(),
};
return serialized;
}
}
private HashSet<BuildingUnlock> Buildings = new();
private HashSet<BasicUpgrade> Unlocks = new();
private readonly HashSet<BuildingUnlock> Buildings = new();
private readonly HashSet<BasicUpgrade> Unlocks = new();
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void Unlock(BuildingUnlock unlock) => Buildings.Add(unlock);
@@ -168,12 +178,8 @@ namespace Fruitomation.Game
public static void Unlock(BasicUpgrade upgrade) => CurrentUpgrades.Unlock(upgrade);
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static bool Is(BuildingUnlock unlock)
{
return unlock == BuildingUnlock.None
? throw new ArgumentOutOfRangeException(nameof(unlock))
: CurrentUpgrades.IsUnlocked(unlock);
}
public static bool Is(BuildingUnlock unlock) =>
unlock == BuildingUnlock.None || CurrentUpgrades.IsUnlocked(unlock);
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static bool Is(BasicUpgrade upgrade) => CurrentUpgrades.IsUnlocked(upgrade);