Added all upgrade buttons
This commit is contained in:
46
Assets/Prefabs/UpgradeButton.prefab
Normal file
46
Assets/Prefabs/UpgradeButton.prefab
Normal file
@@ -0,0 +1,46 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &351937665284672699
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 7542066060159606415}
|
||||
- component: {fileID: 1069714669757873140}
|
||||
m_Layer: 0
|
||||
m_Name: UpgradeButton
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &7542066060159606415
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 351937665284672699}
|
||||
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}
|
||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 100, y: 100}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &1069714669757873140
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 351937665284672699}
|
||||
m_CullTransparentMesh: 1
|
||||
7
Assets/Prefabs/UpgradeButton.prefab.meta
Normal file
7
Assets/Prefabs/UpgradeButton.prefab.meta
Normal file
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: aa413d90ecd8ac44bbe2b6913ee38524
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,21 +0,0 @@
|
||||
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);
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
83
Assets/Scripts/UI/BasicUpgradeButton.cs
Normal file
83
Assets/Scripts/UI/BasicUpgradeButton.cs
Normal file
@@ -0,0 +1,83 @@
|
||||
using Fruitomation.Game;
|
||||
using UnityEngine.UI;
|
||||
using UnityEngine;
|
||||
using System.Linq;
|
||||
using System;
|
||||
|
||||
namespace Fruitomation.UI
|
||||
{
|
||||
public class BasicUpgradeButton : MonoBehaviour
|
||||
{
|
||||
private enum UpgradeState
|
||||
{
|
||||
Unlocked,
|
||||
Unlockable,
|
||||
Viewable,
|
||||
Hidden,
|
||||
}
|
||||
|
||||
[Header("Settings")]
|
||||
[SerializeField] private BasicUpgrade Upgrade;
|
||||
[SerializeField] private int UpgradeCost;
|
||||
|
||||
[Header("References")]
|
||||
[SerializeField] private BasicUpgradeButton[] RequiredUpgrades;
|
||||
|
||||
private UpgradeState State = UpgradeState.Hidden;
|
||||
private Button AttachedButton;
|
||||
private Text AttachedText;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
AttachedText = gameObject.GetComponentInChildren<Text>();
|
||||
AttachedButton = GetComponent<Button>();
|
||||
|
||||
AttachedButton.onClick.AddListener(() =>
|
||||
{
|
||||
UpgradeManager.Unlock(Upgrade);
|
||||
});
|
||||
|
||||
/* Stops null reference */
|
||||
RequiredUpgrades ??= Array.Empty<BasicUpgradeButton>();
|
||||
}
|
||||
|
||||
private bool IsUnlockable =>
|
||||
RequiredUpgrades.Length == 0 ||
|
||||
RequiredUpgrades.All(required => required.IsUnlocked);
|
||||
|
||||
private bool IsViewable =>
|
||||
RequiredUpgrades.Length == 0 ||
|
||||
RequiredUpgrades.Any(required => required.IsUnlocked);
|
||||
|
||||
private void Update()
|
||||
{
|
||||
if (UpgradeManager.Is(Upgrade))
|
||||
{
|
||||
State = UpgradeState.Unlocked;
|
||||
}
|
||||
|
||||
else if (IsUnlockable)
|
||||
{
|
||||
State = UpgradeState.Unlockable;
|
||||
}
|
||||
|
||||
else if (IsViewable)
|
||||
{
|
||||
State = UpgradeState.Viewable;
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
State = UpgradeState.Hidden;
|
||||
}
|
||||
|
||||
//
|
||||
|
||||
AttachedText.text = State == UpgradeState.Hidden
|
||||
? "???"
|
||||
: $"{Upgrade.ToString()} [{UpgradeCost}]";
|
||||
}
|
||||
|
||||
private bool IsUnlocked => State == UpgradeState.Unlocked;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user