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