Player can select job position now

This commit is contained in:
2023-04-30 16:45:05 +03:00
parent 18c8ba0f8c
commit 0dfd80cf16
14 changed files with 97 additions and 31 deletions
+13 -1
View File
@@ -673,4 +673,16 @@ MonoBehaviour:
m_TargetGraphic: {fileID: 4798811243242991943}
m_OnClick:
m_PersistentCalls:
m_Calls: []
m_Calls:
- m_Target: {fileID: 4899774397145829728}
m_TargetAssemblyTypeName: JobItemUITemplate, Assembly-CSharp
m_MethodName: Click
m_Mode: 1
m_Arguments:
m_ObjectArgument: {fileID: 0}
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
m_IntArgument: 0
m_FloatArgument: 0
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
+17
View File
@@ -4603,6 +4603,23 @@ PrefabInstance:
value:
objectReference: {fileID: 11400000, guid: 9dd346cdfec57ee47ad1c06a925769bb,
type: 2}
- target: {fileID: 738253190946143797, guid: 88fcb1c95eeeabc479f95a580dea8152,
type: 3}
propertyPath: _jobsInfoList.Array.size
value: 2
objectReference: {fileID: 0}
- target: {fileID: 738253190946143797, guid: 88fcb1c95eeeabc479f95a580dea8152,
type: 3}
propertyPath: _jobsInfoList.Array.data[0]
value:
objectReference: {fileID: 11400000, guid: c7452dc6dfb2cc040a6d0e543db6b671,
type: 2}
- target: {fileID: 738253190946143797, guid: 88fcb1c95eeeabc479f95a580dea8152,
type: 3}
propertyPath: _jobsInfoList.Array.data[1]
value:
objectReference: {fileID: 11400000, guid: 4381db145ac80514c957374e20392b3b,
type: 2}
- target: {fileID: 2369538501029799684, guid: 88fcb1c95eeeabc479f95a580dea8152,
type: 3}
propertyPath: _selectedObject
+1 -1
View File
@@ -1,6 +1,6 @@
using System.Runtime.Serialization;
public enum JobPositions { Unemployed, Clerk, ManagerAssistaint, Manager };
public enum JobPositions { Unemployed,Cashier, Clerk, ManagerAssistaint, Manager };
public enum PlayerStates { Awake, Sleeping, Eating,Working }
public enum StatsId { Money, RentAccount, Food, Energy, BankAccount, Job, }
public enum Tasks { Move, Interact, Rotate };
@@ -1,4 +1,6 @@
using System;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
public class CashierDesk : BaseInteractableObject
@@ -6,8 +8,8 @@ public class CashierDesk : BaseInteractableObject
[SerializeField]
private ContainerSO _containerSO;
[SerializeField]
private JobInfoSO _jobInfo;
private List<JobInfoSO> _jobsInfoList;
private JobInfoSO _playerJob;
public override void Interact(Player player)
{
@@ -18,11 +20,12 @@ public class CashierDesk : BaseInteractableObject
}
else
{
// if player work here
if (player.JobPosition == _jobInfo.JobPosition)
_playerJob = _jobsInfoList.First(x => x.JobPosition == player.JobPosition);
print($"playerJob is {_playerJob}");
if (_playerJob != null)
{
UIManager.Instance.ShowTimeSliderDialog($"Work", $"Work as {_jobInfo.Description}", OnCancel, OnConfirm);
UIManager.Instance.ShowTimeSliderDialog($"Work", $"Work as {_playerJob.Description}", OnCancel, OnConfirm);
}
else
{
@@ -72,7 +75,7 @@ public class CashierDesk : BaseInteractableObject
float _totalSalary;
private void OnConfirm(TimeSpan time)
{
_totalSalary = (float)(time.TotalHours * _jobInfo.Salary);
_totalSalary = (float)(time.TotalHours * _playerJob.Salary);
_player.SetPlayerActing(PlayerStates.Working);
TimeManager.Instance.FastForward(time);
TimeManager.Instance.OnFastForwardEnd += OnFastForwardEnd;
@@ -13,8 +13,9 @@ public class OfficeTable : BaseInteractableObject
UIManager.Instance.ShowJobSelectionDialog("Job agency", null, OnConfirm);
}
private void OnConfirm()
private void OnConfirm(JobInfoSO selectedJob)
{
_player.JobPosition = JobPositions.Clerk;
_player.JobPosition = selectedJob.JobPosition;
print($"player selected position is {_player.JobPosition}");
}
}
@@ -14,4 +14,5 @@ MonoBehaviour:
m_EditorClassIdentifier:
Description: Clerk
Salary: 5
JobPosition: 1
Icon: {fileID: 0}
JobPosition: 2
@@ -14,4 +14,5 @@ MonoBehaviour:
m_EditorClassIdentifier:
Description: Manager
Salary: 9
JobPosition: 3
Icon: {fileID: 0}
JobPosition: 4
@@ -14,4 +14,5 @@ MonoBehaviour:
m_EditorClassIdentifier:
Description: Manager assistaint
Salary: 6
JobPosition: 2
Icon: {fileID: 0}
JobPosition: 3
+27 -2
View File
@@ -1,8 +1,9 @@
using TMPro;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
public class JobItemUITemplate : MonoBehaviour
public class JobItemUITemplate : MonoBehaviour, IPointerClickHandler, IPointerEnterHandler
{
[SerializeField]
private TextMeshProUGUI _descreiption;
@@ -11,10 +12,34 @@ public class JobItemUITemplate : MonoBehaviour
[SerializeField]
private Image _icon;
public void SetItem(JobInfoSO item)
private JobSelectorUI _parent;
private JobInfoSO _item;
public JobInfoSO Item=> _item;
public void SetItem(JobSelectorUI parent,JobInfoSO item)
{
_item= item;
_parent = parent;
_descreiption.text = item.Description;
_sallary.text = $"{item.Salary}$";
_icon.sprite = item.Icon;
}
void OnMouseDown()
{
_parent.OnItemSelected(this);
}
public void OnPointerClick(PointerEventData eventData)
{
_parent.OnItemSelected(this);
}
public void Click()
{
_parent.OnItemSelected(this);
}
public void OnPointerEnter(PointerEventData eventData)
{
}
}
+11 -6
View File
@@ -1,9 +1,6 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using TMPro;
using Unity.VisualScripting;
using UnityEngine;
using UnityEngine.UI;
@@ -30,7 +27,9 @@ public class JobSelectorUI : MonoBehaviour
private List<JobsListSO> _jobs;
private JobTabUITemplate _selectedTab;
public void ShowJobSelectionDialog(string title, Action onCancel, Action onConfirm)
private JobItemUITemplate _selectedItem;
public void ShowJobSelectionDialog(string title, Action onCancel, Action<JobInfoSO> onConfirm)
{
UIManager.Instance.Freeze();
@@ -57,7 +56,7 @@ public class JobSelectorUI : MonoBehaviour
});
_btnOk.onClick.AddListener(() =>
{
onConfirm?.Invoke();
onConfirm?.Invoke(_selectedItem.Item);
Hide();
});
}
@@ -78,7 +77,7 @@ public class JobSelectorUI : MonoBehaviour
{
var itemUI = Instantiate(_jobItemUItemplate, _itemsContainer);
itemUI.gameObject.SetActive(true);
itemUI.GetComponent<JobItemUITemplate>().SetItem((job));
itemUI.GetComponent<JobItemUITemplate>().SetItem(this,job);
}
print($"selected {button.JobListItem.name}");
}
@@ -88,6 +87,12 @@ public class JobSelectorUI : MonoBehaviour
print($"exit {button.JobListItem.name}");
}
public void OnItemSelected(JobItemUITemplate button)
{
print($"selected job {button.Item.name}");
_selectedItem = button;
}
private void CloseDialog()
{
UIManager.Instance.Unfreeze();
+1 -1
View File
@@ -32,7 +32,7 @@ public class UIManager : MonoBehaviour
timeSlider.ShowTimeSliderDialog(title, description, onCancel, onConfirm);
}
public void ShowJobSelectionDialog(string title, Action onCancel, Action onConfirm)
public void ShowJobSelectionDialog(string title, Action onCancel, Action<JobInfoSO> onConfirm)
{
var jobSelector = Instantiate(_jobSelectorPrefab, transform);
jobSelector.ShowJobSelectionDialog(title, onCancel, onConfirm);
+3 -3
View File
@@ -1,12 +1,12 @@
{
"dependencies": {
"com.unity.ai.navigation": "1.1.1",
"com.unity.ai.navigation": "1.1.3",
"com.unity.animation.rigging": "1.2.1",
"com.unity.cinemachine": "2.9.5",
"com.unity.collab-proxy": "2.0.3",
"com.unity.formats.fbx": "4.2.1",
"com.unity.ide.rider": "3.0.18",
"com.unity.ide.visualstudio": "2.0.17",
"com.unity.ide.rider": "3.0.20",
"com.unity.ide.visualstudio": "2.0.18",
"com.unity.ide.vscode": "1.2.5",
"com.unity.render-pipelines.universal": "14.0.7",
"com.unity.test-framework": "1.1.33",
+3 -3
View File
@@ -8,7 +8,7 @@
"url": "https://packages.unity.com"
},
"com.unity.ai.navigation": {
"version": "1.1.1",
"version": "1.1.3",
"depth": 0,
"source": "registry",
"dependencies": {
@@ -69,7 +69,7 @@
"url": "https://packages.unity.com"
},
"com.unity.ide.rider": {
"version": "3.0.18",
"version": "3.0.20",
"depth": 0,
"source": "registry",
"dependencies": {
@@ -78,7 +78,7 @@
"url": "https://packages.unity.com"
},
"com.unity.ide.visualstudio": {
"version": "2.0.17",
"version": "2.0.18",
"depth": 0,
"source": "registry",
"dependencies": {
+2 -2
View File
@@ -1,2 +1,2 @@
m_EditorVersion: 2022.2.15f1
m_EditorVersionWithRevision: 2022.2.15f1 (30d813e1a2a9)
m_EditorVersion: 2022.2.17f1
m_EditorVersionWithRevision: 2022.2.17f1 (54cb9bda89c4)