2025-02-21 18:35:51 +00:00

80 lines
2.5 KiB
C#

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}");
}
}