From 612b7936773fc1c3e1e1f7f30b43dc85b03aedf5 Mon Sep 17 00:00:00 2001 From: Vova Date: Mon, 1 May 2023 19:40:14 +0300 Subject: [PATCH] Implement player education parameter Enable job offer according to Player education --- Assets/Prefabs/UI/JobItemUiTemplate.prefab | 1 + Assets/Scripts/Helpers/Enums.cs | 2 ++ Assets/Scripts/Player/Player.cs | 2 ++ Assets/Scripts/ScriptableObjects/JobInfoSO.cs | 1 + .../JobPositions/Clerk.asset | 1 + .../JobPositions/Manager.asset | 1 + .../JobPositions/ManagerAssistant.asset | 1 + .../Scripts/UIElements/JobItemUITemplate.cs | 22 +++++++++---------- Assets/Scripts/UIElements/JobTabUITemplate.cs | 1 - 9 files changed, 20 insertions(+), 12 deletions(-) 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/Player/Player.cs b/Assets/Scripts/Player/Player.cs index 66095c76..9a63b275 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;