diff --git a/Assets/Prefabs/UI/JobItemUiTemplate.prefab b/Assets/Prefabs/UI/JobItemUiTemplate.prefab index 3f4d649a..af6e66a3 100644 --- a/Assets/Prefabs/UI/JobItemUiTemplate.prefab +++ b/Assets/Prefabs/UI/JobItemUiTemplate.prefab @@ -189,6 +189,7 @@ MonoBehaviour: _descreiption: {fileID: 3870220567668916177} _sallary: {fileID: 2787096983671346797} _icon: {fileID: 5333122869086954718} + _button: {fileID: 7544413826500446465} --- !u!114 &9018781955098760075 MonoBehaviour: m_ObjectHideFlags: 0 diff --git a/Assets/Scripts/Helpers/Enums.cs b/Assets/Scripts/Helpers/Enums.cs index 46bbb066..53eb51f8 100644 --- a/Assets/Scripts/Helpers/Enums.cs +++ b/Assets/Scripts/Helpers/Enums.cs @@ -1,6 +1,8 @@ using System.Runtime.Serialization; public enum JobPositions { Unemployed,Cashier, Clerk, ManagerAssistaint, Manager }; +public enum EducationSkill { NotEducated, School, HightSchool,University}; + public enum PlayerStates { Awake, Sleeping, Eating,Working } public enum StatsId { Money, RentAccount, Food, Energy, BankAccount, Job, } public enum Tasks { Move, Interact, Rotate }; diff --git a/Assets/Scripts/InteractableObjects/CashierDesk.cs b/Assets/Scripts/InteractableObjects/CashierDesk.cs index b88be1a7..a3e5c728 100644 --- a/Assets/Scripts/InteractableObjects/CashierDesk.cs +++ b/Assets/Scripts/InteractableObjects/CashierDesk.cs @@ -20,7 +20,7 @@ public class CashierDesk : BaseInteractableObject } else { - _playerJob = _jobsInfoList.First(x => x.JobPosition == player.JobPosition); + _playerJob = _jobsInfoList.Where(x => x.JobPosition == player.JobPosition).FirstOrDefault(); print($"playerJob is {_playerJob}"); if (_playerJob != null) { diff --git a/Assets/Scripts/Player/Player.cs b/Assets/Scripts/Player/Player.cs index 58b87dbc..13e274ba 100644 --- a/Assets/Scripts/Player/Player.cs +++ b/Assets/Scripts/Player/Player.cs @@ -24,6 +24,8 @@ public class Player : MonoBehaviour public Dictionary Stats; public JobPositions JobPosition { get; set; } + public EducationSkill Education { get; set; } + private readonly Queue _tasks = new Queue(); private PlayerTasks _currentTask; diff --git a/Assets/Scripts/ScriptableObjects/JobInfoSO.cs b/Assets/Scripts/ScriptableObjects/JobInfoSO.cs index 60f5efdf..e7665c35 100644 --- a/Assets/Scripts/ScriptableObjects/JobInfoSO.cs +++ b/Assets/Scripts/ScriptableObjects/JobInfoSO.cs @@ -7,4 +7,5 @@ public class JobInfoSO : ScriptableObject public float Salary; public Sprite Icon; public JobPositions JobPosition; + public EducationSkill MinimumEducationSkill; } diff --git a/Assets/Scripts/ScriptableObjects/JobPositions/Clerk.asset b/Assets/Scripts/ScriptableObjects/JobPositions/Clerk.asset index b4585e1c..e1e3dd46 100644 --- a/Assets/Scripts/ScriptableObjects/JobPositions/Clerk.asset +++ b/Assets/Scripts/ScriptableObjects/JobPositions/Clerk.asset @@ -16,3 +16,4 @@ MonoBehaviour: Salary: 5 Icon: {fileID: 0} JobPosition: 2 + MinimumEducationSkill: 1 diff --git a/Assets/Scripts/ScriptableObjects/JobPositions/Manager.asset b/Assets/Scripts/ScriptableObjects/JobPositions/Manager.asset index dfa1622d..f7ed16e1 100644 --- a/Assets/Scripts/ScriptableObjects/JobPositions/Manager.asset +++ b/Assets/Scripts/ScriptableObjects/JobPositions/Manager.asset @@ -16,3 +16,4 @@ MonoBehaviour: Salary: 9 Icon: {fileID: 0} JobPosition: 4 + MinimumEducationSkill: 3 diff --git a/Assets/Scripts/ScriptableObjects/JobPositions/ManagerAssistant.asset b/Assets/Scripts/ScriptableObjects/JobPositions/ManagerAssistant.asset index 82862770..bf4f6932 100644 --- a/Assets/Scripts/ScriptableObjects/JobPositions/ManagerAssistant.asset +++ b/Assets/Scripts/ScriptableObjects/JobPositions/ManagerAssistant.asset @@ -16,3 +16,4 @@ MonoBehaviour: Salary: 6 Icon: {fileID: 0} JobPosition: 3 + MinimumEducationSkill: 2 diff --git a/Assets/Scripts/UIElements/JobItemUITemplate.cs b/Assets/Scripts/UIElements/JobItemUITemplate.cs index 1ff73041..9391a011 100644 --- a/Assets/Scripts/UIElements/JobItemUITemplate.cs +++ b/Assets/Scripts/UIElements/JobItemUITemplate.cs @@ -3,7 +3,7 @@ using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI; -public class JobItemUITemplate : MonoBehaviour, IPointerClickHandler, IPointerEnterHandler +public class JobItemUITemplate : MonoBehaviour, IPointerEnterHandler { [SerializeField] private TextMeshProUGUI _descreiption; @@ -12,6 +12,9 @@ public class JobItemUITemplate : MonoBehaviour, IPointerClickHandler, IPointerE [SerializeField] private Image _icon; + [SerializeField] + private Button _button; + private JobSelectorUI _parent; private JobInfoSO _item; public JobInfoSO Item=> _item; @@ -23,23 +26,20 @@ public class JobItemUITemplate : MonoBehaviour, IPointerClickHandler, IPointerE _descreiption.text = item.Description; _sallary.text = $"{item.Salary}$"; _icon.sprite = item.Icon; + _button.enabled = Player.Instance.Education>=item.MinimumEducationSkill; } - void OnMouseDown() - { - _parent.OnItemSelected(this); - } - public void OnPointerClick(PointerEventData eventData) - { - _parent.OnItemSelected(this); - } - + public void Click() { - _parent.OnItemSelected(this); + if (_button.enabled) + { + _parent.OnItemSelected(this); + } } public void OnPointerEnter(PointerEventData eventData) { + if (!_button.enabled) { print("Not enough education"); } } } diff --git a/Assets/Scripts/UIElements/JobTabUITemplate.cs b/Assets/Scripts/UIElements/JobTabUITemplate.cs index 0018c745..2fa84d1a 100644 --- a/Assets/Scripts/UIElements/JobTabUITemplate.cs +++ b/Assets/Scripts/UIElements/JobTabUITemplate.cs @@ -1,5 +1,4 @@ using TMPro; -using Unity.VisualScripting; using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI;