using System.Collections; using System.Collections.Generic; using TMPro; using UnityEngine; using UnityEngine.UI; public class JobInfoPanel : MonoBehaviour { [Header("Components:")] [SerializeField] private TMP_Text title; [SerializeField] private TMP_Text description; [SerializeField] private TMP_Text coinReward; [SerializeField] private TMP_Text experienceReward; [SerializeField] private TMP_Text reputationReward; [SerializeField] private GameObject infoPanel; [SerializeField] private Button closeButton; [Header("Events:")] [SerializeField] private GameEvent onInfoPanelClosed; [Header("Listeners:")] [SerializeField] private GameEventListener_JobInstance onJobSelected; [SerializeField] private GameEventListener onJobsBoardReleased; [SerializeField] private GameEventListener_RiftPlayer onPlayerVoted; [SerializeField] private GameEventListener onGameOptionsOpenned; JobInstance networkJobInstance; private void Awake() { onJobSelected.Response.AddListener((job) => SetupJobInfoPanel(job, true)); onJobSelected.Response.AddListener(Send_Others_OnJobSelected); onJobsBoardReleased.Response.AddListener(() => ToggleInfoPanel(false)); onGameOptionsOpenned.Response.AddListener(() => ToggleInfoPanel(false)); /* onPlayerVoted.Response.AddListener((player) => { if (player != PhotonNetwork.LocalPlayer) ToggleInfoPanel(true); });*/ closeButton.onClick.AddListener(() => ToggleInfoPanel(false)); } private void SetupJobInfoPanel(JobInstance jobData, bool showPanel) { if (jobData.showJobTitlePrefix) title.text = $"Job Title: {jobData.title}"; else title.text = $"{jobData.title}"; description.text = jobData.description; coinReward.text = jobData.coinReward.ToString(); experienceReward.text = jobData.experienceReward.ToString(); reputationReward.text = jobData.reputationReward.ToString(); if (showPanel) ToggleInfoPanel(true); } public void ToggleInfoPanel(bool visible) { infoPanel.SetActive(visible); if (!visible) onInfoPanelClosed.Raise(); } private void Send_Others_OnJobSelected(JobInstance jobInstance) { //if (PhotonNetwork.CurrentRoom.PlayerCount <= 1) return; networkJobInstance = jobInstance; string jsonJobData = JsonUtility.ToJson(networkJobInstance); Debug.Log($"JobData: {jsonJobData}"); } }