Added the unlock menu thing
This commit is contained in:
47
Assets/Prefabs/ItemRegistry.prefab
Normal file
47
Assets/Prefabs/ItemRegistry.prefab
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!1 &4528292146240613971
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 3666462050572962762}
|
||||||
|
- component: {fileID: 2973243437333469226}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: ItemRegistry
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &3666462050572962762
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 4528292146240613971}
|
||||||
|
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 &2973243437333469226
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 4528292146240613971}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: dcb8b502e5b94a72b37a6e77e4770d05, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: Fruitomation::Fruitomation.Game.Items.ItemInfoRegistry
|
||||||
|
SerializedRegistry: {fileID: 11400000, guid: b518751a8b5ee0942af68ec87eeba0c5, type: 2}
|
||||||
7
Assets/Prefabs/ItemRegistry.prefab.meta
Normal file
7
Assets/Prefabs/ItemRegistry.prefab.meta
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: ab033116269e1b04a803e8de46580851
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -1815,6 +1815,7 @@ MonoBehaviour:
|
|||||||
SelectedBuildingToBuild:
|
SelectedBuildingToBuild:
|
||||||
Name:
|
Name:
|
||||||
Requirement: 0
|
Requirement: 0
|
||||||
|
Type: 0
|
||||||
Prefab: {fileID: 0}
|
Prefab: {fileID: 0}
|
||||||
FlipCurrentBuilding: 0
|
FlipCurrentBuilding: 0
|
||||||
--- !u!58 &1330313879
|
--- !u!58 &1330313879
|
||||||
@@ -2157,51 +2158,6 @@ CanvasRenderer:
|
|||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
m_GameObject: {fileID: 1511006084}
|
m_GameObject: {fileID: 1511006084}
|
||||||
m_CullTransparentMesh: 1
|
m_CullTransparentMesh: 1
|
||||||
--- !u!1 &1618062727
|
|
||||||
GameObject:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
serializedVersion: 6
|
|
||||||
m_Component:
|
|
||||||
- component: {fileID: 1618062728}
|
|
||||||
- component: {fileID: 1618062729}
|
|
||||||
m_Layer: 0
|
|
||||||
m_Name: ItemRegistry
|
|
||||||
m_TagString: Untagged
|
|
||||||
m_Icon: {fileID: 0}
|
|
||||||
m_NavMeshLayer: 0
|
|
||||||
m_StaticEditorFlags: 0
|
|
||||||
m_IsActive: 1
|
|
||||||
--- !u!4 &1618062728
|
|
||||||
Transform:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 1618062727}
|
|
||||||
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 &1618062729
|
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 1618062727}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_EditorHideFlags: 0
|
|
||||||
m_Script: {fileID: 11500000, guid: dcb8b502e5b94a72b37a6e77e4770d05, type: 3}
|
|
||||||
m_Name:
|
|
||||||
m_EditorClassIdentifier: Fruitomation::Fruitomation.Game.Items.ItemInfoRegistry
|
|
||||||
SerializedRegistry: {fileID: 11400000, guid: b518751a8b5ee0942af68ec87eeba0c5, type: 2}
|
|
||||||
--- !u!1 &1740340057
|
--- !u!1 &1740340057
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -2932,6 +2888,74 @@ MonoBehaviour:
|
|||||||
MenuItemPrefab: {fileID: 1541142508120997748, guid: 74aff4063df1fab4c954bebfad022ff5,
|
MenuItemPrefab: {fileID: 1541142508120997748, guid: 74aff4063df1fab4c954bebfad022ff5,
|
||||||
type: 3}
|
type: 3}
|
||||||
BuildingPrefabs: {fileID: 11400000, guid: e6ae3d283005f994da00a3d8835a3cb5, type: 2}
|
BuildingPrefabs: {fileID: 11400000, guid: e6ae3d283005f994da00a3d8835a3cb5, type: 2}
|
||||||
|
--- !u!1001 &2856219408887410068
|
||||||
|
PrefabInstance:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Modification:
|
||||||
|
serializedVersion: 3
|
||||||
|
m_TransformParent: {fileID: 0}
|
||||||
|
m_Modifications:
|
||||||
|
- target: {fileID: 3666462050572962762, guid: ab033116269e1b04a803e8de46580851,
|
||||||
|
type: 3}
|
||||||
|
propertyPath: m_LocalPosition.x
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 3666462050572962762, guid: ab033116269e1b04a803e8de46580851,
|
||||||
|
type: 3}
|
||||||
|
propertyPath: m_LocalPosition.y
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 3666462050572962762, guid: ab033116269e1b04a803e8de46580851,
|
||||||
|
type: 3}
|
||||||
|
propertyPath: m_LocalPosition.z
|
||||||
|
value: -0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 3666462050572962762, guid: ab033116269e1b04a803e8de46580851,
|
||||||
|
type: 3}
|
||||||
|
propertyPath: m_LocalRotation.w
|
||||||
|
value: 1
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 3666462050572962762, guid: ab033116269e1b04a803e8de46580851,
|
||||||
|
type: 3}
|
||||||
|
propertyPath: m_LocalRotation.x
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 3666462050572962762, guid: ab033116269e1b04a803e8de46580851,
|
||||||
|
type: 3}
|
||||||
|
propertyPath: m_LocalRotation.y
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 3666462050572962762, guid: ab033116269e1b04a803e8de46580851,
|
||||||
|
type: 3}
|
||||||
|
propertyPath: m_LocalRotation.z
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 3666462050572962762, guid: ab033116269e1b04a803e8de46580851,
|
||||||
|
type: 3}
|
||||||
|
propertyPath: m_LocalEulerAnglesHint.x
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 3666462050572962762, guid: ab033116269e1b04a803e8de46580851,
|
||||||
|
type: 3}
|
||||||
|
propertyPath: m_LocalEulerAnglesHint.y
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 3666462050572962762, guid: ab033116269e1b04a803e8de46580851,
|
||||||
|
type: 3}
|
||||||
|
propertyPath: m_LocalEulerAnglesHint.z
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 4528292146240613971, guid: ab033116269e1b04a803e8de46580851,
|
||||||
|
type: 3}
|
||||||
|
propertyPath: m_Name
|
||||||
|
value: ItemRegistry
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
m_RemovedComponents: []
|
||||||
|
m_RemovedGameObjects: []
|
||||||
|
m_AddedGameObjects: []
|
||||||
|
m_AddedComponents: []
|
||||||
|
m_SourcePrefab: {fileID: 100100000, guid: ab033116269e1b04a803e8de46580851, type: 3}
|
||||||
--- !u!1660057539 &9223372036854775807
|
--- !u!1660057539 &9223372036854775807
|
||||||
SceneRoots:
|
SceneRoots:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -2942,4 +2966,4 @@ SceneRoots:
|
|||||||
- {fileID: 1165634414}
|
- {fileID: 1165634414}
|
||||||
- {fileID: 525386540}
|
- {fileID: 525386540}
|
||||||
- {fileID: 1935863238}
|
- {fileID: 1935863238}
|
||||||
- {fileID: 1618062728}
|
- {fileID: 2856219408887410068}
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -106,20 +106,15 @@ namespace Fruitomation.UI
|
|||||||
UpgradeLines = lines.ToArray();
|
UpgradeLines = lines.ToArray();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnButtonClicked()
|
private void OnButtonClicked() => UpgradeBoard.Enable
|
||||||
{
|
(
|
||||||
if (Cost == 0f)
|
Upgrade,
|
||||||
{
|
Inputs,
|
||||||
Debug.LogWarning("Upgrade Cost has not been set");
|
Outputs,
|
||||||
return;
|
Building,
|
||||||
}
|
Cost
|
||||||
|
);
|
||||||
if (MoneyController.CanBuy(Cost))
|
|
||||||
{
|
|
||||||
UpgradeManager.Unlock(Upgrade);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private bool IsUnlockable =>
|
private bool IsUnlockable =>
|
||||||
RequiredUpgrades.Length == 0 ||
|
RequiredUpgrades.Length == 0 ||
|
||||||
RequiredUpgrades.All(required => required.IsUnlocked);
|
RequiredUpgrades.All(required => required.IsUnlocked);
|
||||||
@@ -170,7 +165,8 @@ namespace Fruitomation.UI
|
|||||||
State = UpgradeState.Hidden;
|
State = UpgradeState.Hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
AttachedButton.interactable = State == UpgradeState.Unlockable;
|
AttachedButton.interactable =
|
||||||
|
State is UpgradeState.Unlockable or UpgradeState.Unlocked;
|
||||||
|
|
||||||
string cost = Cost == 0f ? "UNAVAILABLE" : $"{Cost:F1}";
|
string cost = Cost == 0f ? "UNAVAILABLE" : $"{Cost:F1}";
|
||||||
|
|
||||||
|
|||||||
@@ -1,22 +1,105 @@
|
|||||||
using UnityEngine;
|
using System.Collections.Generic;
|
||||||
|
using Fruitomation.Game.Items;
|
||||||
|
using Fruitomation.Game;
|
||||||
|
using UnityEngine.UI;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
namespace Fruitomation.UI
|
namespace Fruitomation.UI
|
||||||
{
|
{
|
||||||
public class UpgradeInfoBoard : MonoBehaviour
|
public class UpgradeInfoBoard : MonoBehaviour
|
||||||
{
|
{
|
||||||
[SerializeField] private GameObject BoardGO;
|
[SerializeField] private GameObject BoardGO;
|
||||||
|
[SerializeField] private Button[] ExitButtons;
|
||||||
|
[SerializeField] private BuildingRegistry Registry;
|
||||||
|
[SerializeField] private GameObject InputParent;
|
||||||
|
[SerializeField] private GameObject OutputParent;
|
||||||
|
[SerializeField] private GameObject BuildingDisplay;
|
||||||
|
[SerializeField] private GameObject LeftArrow;
|
||||||
|
[SerializeField] private GameObject SpawnerText;
|
||||||
|
|
||||||
|
private readonly Dictionary<AutomationBuildingType, GameObject> BuildingRegistry = new();
|
||||||
|
private readonly List<GameObject> ChildrenToKill = new();
|
||||||
|
|
||||||
private void Start()
|
private void Start()
|
||||||
{
|
{
|
||||||
BoardGO.SetActive(false);
|
BoardGO.SetActive(false);
|
||||||
|
foreach (Button b in ExitButtons)
|
||||||
|
{
|
||||||
|
b.onClick.AddListener(Disable);
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (BuildingRegistry.BuildingInfo info in Registry.GetBuildings())
|
||||||
|
{
|
||||||
|
if (info.Type != AutomationBuildingType.None)
|
||||||
|
{
|
||||||
|
BuildingRegistry.Add(info.Type, info.Prefab);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Enable()
|
public void Enable
|
||||||
|
(
|
||||||
|
BasicUpgrade upgrade,
|
||||||
|
ItemType[] inputs,
|
||||||
|
ItemType[] outputs,
|
||||||
|
AutomationBuildingType building,
|
||||||
|
double cost
|
||||||
|
)
|
||||||
|
// Wow, those function params are horrible
|
||||||
{
|
{
|
||||||
|
BoardGO.SetActive(true);
|
||||||
|
foreach (ItemType input in inputs)
|
||||||
|
{
|
||||||
|
ItemInfo info = ItemInfoRegistry.Get(input);
|
||||||
|
GameObject go = Instantiate(info.Prefab, InputParent.transform);
|
||||||
|
ChildrenToKill.Add(go);
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (ItemType output in outputs)
|
||||||
|
{
|
||||||
|
ItemInfo info = ItemInfoRegistry.Get(output);
|
||||||
|
GameObject go = Instantiate(info.Prefab, OutputParent.transform);
|
||||||
|
ChildrenToKill.Add(go);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (building != AutomationBuildingType.Spawner)
|
||||||
|
{
|
||||||
|
BuildingDisplay.SetActive(true);
|
||||||
|
LeftArrow.SetActive(true);
|
||||||
|
SpawnerText.SetActive(false);
|
||||||
|
|
||||||
|
Sprite sprite = BuildingRegistry[building].GetComponent<Building>().Sprite;
|
||||||
|
BuildingDisplay.GetComponent<Image>().sprite = sprite;
|
||||||
|
|
||||||
|
if (building == AutomationBuildingType.HeatExchanger)
|
||||||
|
{
|
||||||
|
RectTransform rt = BuildingDisplay.GetComponent<RectTransform>();
|
||||||
|
rt.sizeDelta = new Vector2(125f, 250f);
|
||||||
|
}
|
||||||
|
|
||||||
|
else
|
||||||
|
{
|
||||||
|
RectTransform rt = BuildingDisplay.GetComponent<RectTransform>();
|
||||||
|
rt.sizeDelta = new Vector2(250f, 250f);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
else
|
||||||
|
{
|
||||||
|
BuildingDisplay.SetActive(false);
|
||||||
|
LeftArrow.SetActive(false);
|
||||||
|
SpawnerText.SetActive(true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Disable()
|
private void Disable()
|
||||||
{
|
{
|
||||||
|
BoardGO.SetActive(false);
|
||||||
|
foreach (GameObject child in ChildrenToKill)
|
||||||
|
{
|
||||||
|
Destroy(child);
|
||||||
|
}
|
||||||
|
ChildrenToKill.Clear();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user